Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 如何在WSO2 ESB中的两个ftp服务器之间传输文件?_Apache_Ftp_Wso2esb - Fatal编程技术网

Apache 如何在WSO2 ESB中的两个ftp服务器之间传输文件?

Apache 如何在WSO2 ESB中的两个ftp服务器之间传输文件?,apache,ftp,wso2esb,Apache,Ftp,Wso2esb,使用WSO2 ESB 4.9.0,我创建了一个代理服务,用于将文件从一个FTP位置传输到另一个FTP位置。在axis2.xml中,我启用了VFS传输,并相应地为pdf contexttype配置了messagebuilder和messageformatter。但我收到一个错误,上面写着“错误Axis2Sender发送消息时出现意外错误” 我是ESB产品的新手。有人能帮我理解我在这里遇到的问题吗 我的代理服务配置: <proxy name="StockQuoteProxy" transpor

使用WSO2 ESB 4.9.0,我创建了一个代理服务,用于将文件从一个FTP位置传输到另一个FTP位置。在axis2.xml中,我启用了VFS传输,并相应地为pdf contexttype配置了messagebuilder和messageformatter。但我收到一个错误,上面写着“错误Axis2Sender发送消息时出现意外错误”

我是ESB产品的新手。有人能帮我理解我在这里遇到的问题吗

我的代理服务配置:

<proxy name="StockQuoteProxy" transports="vfs">
    <parameter name="transport.vfs.FileURI">ftp://{user}:{pwd}@{host}/{directory}</parameter>
    <!--CHANGE-->
    <parameter name="transport.vfs.ContentType">application/pdf</parameter>
    <parameter name="transport.vfs.FileNamePattern">.*\.pdf</parameter>
    <parameter name="transport.PollInterval">15</parameter>
    <parameter name="transport.vfs.MoveAfterProcess">file://C:/VFStest/original</parameter>
    <!--CHANGE-->
    <parameter name="transport.vfs.MoveAfterFailure">file://C:/VFStest/original</parameter>
    <!--CHANGE-->
    <parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
    <parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>

    <target>
        <inSequence>
            <log description="Log Message" level="custom">
                <property name="message" value="Transfering file"/>
            </log>
            <property name="ClientApiNonBlocking" value="true" scope="axis2" action="remove"/>
            <send>
                <endpoint name="FileEP">
                    <address uri="vfs:ftp://{user}:{pwd}@{host}/{directory}"/>
                </endpoint>
            </send>
        </inSequence>
    </target>
    <!--publishWSDL uri="file:repository/samples/resources/proxy/sample_proxy_1.wsdl"/-->
</proxy>


在In序列中,您可能需要设置
OUT\u ONLY
属性才能使其正常工作。(可提供解释)


如果要执行非阻塞同步调用,还可以使用调用中介。 例如:


...

如果您只需要传输文件,您可以使用wso2 esb vfs的流选项


axis2.xml中pdf的messagebuilder和messageformatter配置:谢谢Rajeev。在添加了_ONLY属性之后,我的代码终于如我所期望的那样工作了。感谢Malaka的帮助。
2016-05-06 14:38:01,037 [-] [vfs-Worker-2] ERROR Axis2Sender Unexpected error during sending message out
org.apache.axis2.AxisFault: The VFS transport doesn't support synchronous responses. Please use the appropriate (out only) message exchange pattern.
    at org.apache.synapse.transport.vfs.VFSTransportSender.sendMessage(VFSTransportSender.java:116)
    at org.apache.axis2.transport.base.AbstractTransportSender.invoke(AbstractTransportSender.java:112)
    at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)
    at org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.send(DynamicAxisOperation.java:185)
    at org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.executeImpl(DynamicAxisOperation.java:167)
    at org.apache.axis2.client.OperationClient.execute(OperationClient.java:149)
    at org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:542)
    at org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:79)
    at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:461)
    at org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:372)
    at org.apache.synapse.endpoints.AddressEndpoint.send(AddressEndpoint.java:65)
    at org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:105)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48)
    at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:149)
    at org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:185)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
    at org.apache.axis2.transport.base.AbstractTransportListener.handleIncomingMessage(AbstractTransportListener.java:328)
    at org.apache.synapse.transport.vfs.VFSTransportListener.processFile(VFSTransportListener.java:751)
    at org.apache.synapse.transport.vfs.VFSTransportListener.scanFileOrDirectory(VFSTransportListener.java:407)
    at org.apache.synapse.transport.vfs.VFSTransportListener.poll(VFSTransportListener.java:177)
    at org.apache.synapse.transport.vfs.VFSTransportListener.poll(VFSTransportListener.java:124)
    at org.apache.axis2.transport.base.AbstractPollingTransportListener$1$1.run(AbstractPollingTransportListener.java:67)
    at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
2016-05-06 14:38:01,056 [-] [vfs-Worker-2]  WARN ProxyServiceMessageReceiver Executing fault handler due to exception encountered
2016-05-06 14:38:01,058 [-] [vfs-Worker-2]  WARN FaultHandler ERROR_CODE : 0
2016-05-06 14:38:01,059 [-] [vfs-Worker-2]  WARN FaultHandler ERROR_MESSAGE : Unexpected error during sending message out
2016-05-06 14:38:01,060 [-] [vfs-Worker-2]  WARN FaultHandler ERROR_DETAIL : org.apache.synapse.SynapseException: Unexpected error during sending message out
<property name="OUT_ONLY" value="true"/>
<inSequence>
            <property name="OUT_ONLY" value="true"/>
            <call>
               <endpoint name="ftpEndpoint">
                  <address uri="vfs:ftp://{user}:{pwd}@{host}/{directory}"/>
               </endpoint>
            </call>
      ...
</inSequence>