我想在WSO2中添加一项服务,该服务主要用于扫描远程ftp服务器上的文件,并告诉客户端文件名。
过程如下:服务预定扫描ftp方向,如果找到匹配文件,则将文件名发送给客户端(sendReportFile(fileName))。
如何在wso2中执行此操作?
我想我需要使用vfs作为扫描文件,但是如何将文件名发送给客户端?
答案 0 :(得分:3)
如果使用vfs作为传输,则拾取文件的文件名可用作名为FILE_NAME的传输属性。文件名和完整路径可用作传输属性FILE_PATH。
因此,您可以使用get-property()XPath函数来获取值,使用
get-property('transport','FILE_NAME')
或
GET-属性( '$ TRP:FILE_NAME')
答案 1 :(得分:0)
如果您需要在不下载实际文件的情况下处理此问题(VFS就是这种情况),您可以使用自定义或类介体在给定的轮询时间连接到FTP服务器。创建自定义中介的示例: http://maninda.blogspot.co.uk/2013/01/writing-custom-mediator-for-wso2-esb_7.html
集成的Apache Commons FTPClient类可用于从介体内与FTP服务器进行交互: http://commons.apache.org/proper/commons-net//apidocs/org/apache/commons/net/ftp/FTPClient.html