1

camel (2.6) を使用して、ルートから別のルートにファイルをコピーしています。単体テストがないため、新しいものを作成しようとしていますが、常に次のエラーが発生します。

org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: sftp://admin@localhost/?connectTimeout=1800000&delay=1800000&disconnect=true&filter=%23myFileFilter&initialDelay=120000&passiveMode=true&password=admin&reconnectDelay=180000&recursive=true&useFixedDelay=true due to: Could not find a suitable setter for property: filter as there isn't a setter method with same type: java.lang.String nor type conversion possible: No type converter available to convert from type: java.lang.String to the required type: org.apache.camel.component.file.GenericFileFilter with value #myFileFilter
at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:449)
at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:463)

コードを貼り付けます:

<bean id="myFileFilter" class="com.my.test.RouteFileFilter">
    <constructor-arg type="java.lang.String"
        value="Regex_filter"/>
</bean>

RouteFilter は genericFileFilter の実装です

次に、単体テストでこれを行っています:

CamelContext ctx = new DefaultCamelContext();
Exchange ex = new DefaultExchange(ctx);
Endpoint endpoint = new SftpEndpoint(sourceURI, new SftpComponent(), new SftpConfiguration());
ctx.addEndpoint(sourceURI, endpoint);

ctx.addRoutes(myBuilder);
ctx.start();

これは、エラーが発生する行です。

getContext().getEndpoint(getSourceURIWithFilter(), GenericFileEndpoint.class).setProcessStrategy(new DefaultRouteFileProcessStrategy(this));
4

1 に答える 1