WSO2 ESB - 文件复制代理服务 - 如何使用?
WSO2 ESB - File copy proxy service - how to use?
我是 SOA 概念和 WSO2 ESB 的新手,所以我使用可以在网上找到的教程。
我正在尝试使用 WSO2 ESB 进行文件操作,尤其是从本地文件系统复制。
如本主题所述:http://wso2.com/library/articles/2012/01/wso2-esb-example-file-exchanging-hub-part-1/#read-file
我在我的 Carbon 服务器上部署了我的服务,我可以看到它。但是当我点击 "Try this service" 时,没有任何反应。文件未被复制,控制台服务器中也没有日志消息出现。
这是我的 "FileSystemVFSProxy.xml" 内容:
<?xml version="1.0" encoding="UTF-8"?>
<proxy name="FileSystemVFSProxy" startOnLoad="true" trace="disable"
transports="vfs" xmlns="http://ws.apache.org/ns/synapse">
<target>`enter code here`
<inSequence>
<log level="full"/>
<drop/>
</inSequence>
<outSequence/>
<faultSequence/>
</target>
<parameter name="transport.PollInterval">15</parameter>
<parameter name="transport.vfs.FileURI">file://localhost/c:/test</parameter>
<parameter name="transport.vfs.ContentType">text/xml</parameter>
<parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
<parameter name="transport.vfs.MoveAfterFailure">file://localhost/c:/test/erreur</parameter>
<parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
<parameter name="transport.vfs.FileNamePattern">.*\.txt</parameter>
<parameter name="transport.vfs.MoveAfterProcess">file://localhost/c:/test/destination</parameter>
</proxy>
1) 我的配置正确吗?
2) 如何使用我的服务?
谢谢
尝试一下(本地文件的 vfs url 中没有本地主机)并且不要忘记目录必须存在:
<?xml version="1.0" encoding="UTF-8"?>
<proxy name="FileSystemVFSProxy" startOnLoad="true" trace="disable" transports="vfs" xmlns="http://ws.apache.org/ns/synapse">
<target>
<inSequence>
<log level="full"/>
<drop/>
</inSequence>
<outSequence/>
<faultSequence/>
</target>
<parameter name="transport.PollInterval">15</parameter>
<parameter name="transport.vfs.FileURI">file:///C:/test</parameter>
<parameter name="transport.vfs.ContentType">text/xml</parameter>
<parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
<parameter name="transport.vfs.MoveAfterFailure">file:///C:/test/erreur</parameter>
<parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
<parameter name="transport.vfs.FileNamePattern">.*\.txt</parameter>
<parameter name="transport.vfs.MoveAfterProcess">file:///C:/test/destination</parameter>
</proxy>
我的问题解决了。正如 Jean-Michel 所提到的,我的 URI 是错误的,并且无法将 'file://localhost/xxx' 用于本地文件系统。
我的配置还有另一个问题。有必要在 axis2.xml 文件服务器中启用 vfs 传输。
我们可以在文档中找到它:https://docs.wso2.com/display/ESB500/VFS+Transport
<transportReceiver name="vfs" class="org.apache.synapse.transport.vfs.VFSTransportListener"/>
...
<transportSender name="vfs" class="org.apache.synapse.transport.vfs.VFSTransportSender"/>
感谢您的回答
我是 SOA 概念和 WSO2 ESB 的新手,所以我使用可以在网上找到的教程。 我正在尝试使用 WSO2 ESB 进行文件操作,尤其是从本地文件系统复制。
如本主题所述:http://wso2.com/library/articles/2012/01/wso2-esb-example-file-exchanging-hub-part-1/#read-file
我在我的 Carbon 服务器上部署了我的服务,我可以看到它。但是当我点击 "Try this service" 时,没有任何反应。文件未被复制,控制台服务器中也没有日志消息出现。
这是我的 "FileSystemVFSProxy.xml" 内容:
<?xml version="1.0" encoding="UTF-8"?>
<proxy name="FileSystemVFSProxy" startOnLoad="true" trace="disable"
transports="vfs" xmlns="http://ws.apache.org/ns/synapse">
<target>`enter code here`
<inSequence>
<log level="full"/>
<drop/>
</inSequence>
<outSequence/>
<faultSequence/>
</target>
<parameter name="transport.PollInterval">15</parameter>
<parameter name="transport.vfs.FileURI">file://localhost/c:/test</parameter>
<parameter name="transport.vfs.ContentType">text/xml</parameter>
<parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
<parameter name="transport.vfs.MoveAfterFailure">file://localhost/c:/test/erreur</parameter>
<parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
<parameter name="transport.vfs.FileNamePattern">.*\.txt</parameter>
<parameter name="transport.vfs.MoveAfterProcess">file://localhost/c:/test/destination</parameter>
</proxy>
1) 我的配置正确吗?
2) 如何使用我的服务?
谢谢
尝试一下(本地文件的 vfs url 中没有本地主机)并且不要忘记目录必须存在:
<?xml version="1.0" encoding="UTF-8"?>
<proxy name="FileSystemVFSProxy" startOnLoad="true" trace="disable" transports="vfs" xmlns="http://ws.apache.org/ns/synapse">
<target>
<inSequence>
<log level="full"/>
<drop/>
</inSequence>
<outSequence/>
<faultSequence/>
</target>
<parameter name="transport.PollInterval">15</parameter>
<parameter name="transport.vfs.FileURI">file:///C:/test</parameter>
<parameter name="transport.vfs.ContentType">text/xml</parameter>
<parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
<parameter name="transport.vfs.MoveAfterFailure">file:///C:/test/erreur</parameter>
<parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
<parameter name="transport.vfs.FileNamePattern">.*\.txt</parameter>
<parameter name="transport.vfs.MoveAfterProcess">file:///C:/test/destination</parameter>
</proxy>
我的问题解决了。正如 Jean-Michel 所提到的,我的 URI 是错误的,并且无法将 'file://localhost/xxx' 用于本地文件系统。
我的配置还有另一个问题。有必要在 axis2.xml 文件服务器中启用 vfs 传输。
我们可以在文档中找到它:https://docs.wso2.com/display/ESB500/VFS+Transport
<transportReceiver name="vfs" class="org.apache.synapse.transport.vfs.VFSTransportListener"/>
...
<transportSender name="vfs" class="org.apache.synapse.transport.vfs.VFSTransportSender"/>
感谢您的回答