呼び出されたときにローカルディレクトリを調べて、そこからファイルを取得してftpサーバーにアップロードするWebサービスを作成しようとしています。
ローカル ディレクトリからファイルを選択して ftp サーバーにアップロードする単純なルートを作成できます。コードは次のとおりです。
<route>
<from uri="file://D:\\FTPTest?noop=true&delay=2000" />
<to uri="ftp://user@host.in:21/public_html/EnterpriseProject?password=password123#"/>
<to uri="bean:myBean?method=test" />
</route>
しかし、restlet webservice を介して特定のルートが呼び出されたときにこのファイル転送が呼び出されるようにしたいので、次のコードで試しましたが、うまくいきませんでした:
<route>
<from uri="direct:fileTransferRoute" />
<to uri="file://D:\\FTPTest?noop=true&delay=2000" />
<to uri="ftp://user@host.in:21/public_html/EnterpriseProject?password=password123#"/>
</route>
上記のルートは、次のルートから restlet によって呼び出されます。
<route>
<from
uri="restlet:http://0.0.0.0:9080/csitec/{serviceName}?restletMethod=post" />
<process ref="serviceRouteProcessor" />
<toD uri="direct:${in.header.nextRoute}" />
</route>
私の serviceRouteProcessor のコードは次のとおりです。
public void process(Exchange exchange) throws Exception {
String body = exchange.getIn().getBody(String.class);
String serviceName = exchange.getIn().getHeader(Constants.SERVICE_NAME).toString();
String nextRoute = serviceName+Constants.NEXT_ROUTE_APPENDER;
exchange.getOut().setHeader(Constants.NEXT_ROUTE, nextRoute);
exchange.getOut().setBody(body);
}
私を助けて、このように機能させるために変更を行う必要があることを提案してください。