我正在尝试创建一个 web 服务,当调用它时,查看本地目录会从那里获取文件并上传到 ftp 服务器。
我可以创建一个简单的路由,它从本地目录中选择文件并上传到 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);
}
请帮助我并建议需要进行更改以使其像这样工作。