2014-06-23 103 views
1

我想从FTP服务器读取一组文件,然后将它传递给我的服务进行转换,然后通过VFS将转换后的文件发送到输出文件夹。我配置了VFS协议并配置了端点。请参阅配置如下:WSO2 ESB | VFS到服务调解

<?xml version="1.0" encoding="UTF-8"?> 
    <proxy xmlns="http://ws.apache.org/ns/synapse" 
      name="FileSystemVFSProxy" 
      transports="https,http,local,vfs" 
      statistics="disable" 
      trace="disable" 
      startOnLoad="true"> 
     <target> 
      <inSequence> 
      <log level="full"/> 
      <send> 
       <endpoint> 
        <address uri="http://localhost:8280/services/EDIMessenger" format="soap11"/> 
       </endpoint> 
      </send> 
      </inSequence> 
      <outSequence> 
      <property name="transport.vfs.ReplyFileName" 
         value="test.xml" 
         scope="transport" 
         type="STRING"/> 
      <property name="OUT_ONLY" value="true"/> 
      <send> 
       <endpoint> 
        <address uri="vfs:file:///D:/WSO2"/> 
       </endpoint> 
      </send> 
      </outSequence> 
     </target> 
     <parameter name="transport.PollInterval">15</parameter> 
     <parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter> 
     <parameter name="transport.vfs.FileURI">file:///D:/WSO2/content</parameter> 
     <parameter name="transport.vfs.MoveAfterProcess">file:///D:/WSO2/original</parameter> 
     <parameter name="transport.vfs.MoveAfterFailure">file:///D:/WSO2/Archive</parameter> 
     <parameter name="transport.vfs.FileNamePattern">.*\.*</parameter> 
     <parameter name="transport.vfs.ContentType">text/plain</parameter> 
     <parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter> 
     <description/> 
    </proxy> 

服务配置如下:

<?xml version="1.0" encoding="UTF-8"?> 
<serviceGroup name="EDIMessengerEx_1.0.0" 
       hashValue="74dc0f1e0e5cef0a5d78d09dc7f0edb1" 
       successfullyAdded="true"> 
    <service name="EDIMessenger" 
      serviceDocumentation="EDIMessenger" 
      exposedAllTransports="true" 
      serviceDeployedTime="1403437845501" 
      successfullyAdded="true"> 
     <operation name="method1"> 
     <module name="addressing" version="4.2.0" type="engagedModules"/> 
     </operation> 
     <bindings> 
     <binding name="EDIMessengerSoap11Binding"> 
      <operation name="method1"/> 
     </binding> 
     <binding name="EDIMessengerSoap12Binding"> 
      <operation name="method1"/> 
     </binding> 
     <binding name="EDIMessengerHttpBinding"> 
      <operation name="method1"/> 
     </binding> 
     </bindings> 
     <policies/> 
     <module name="addressing" version="4.2.0" type="engagedModules"/> 
     <parameter name="ServiceClass" locked="false">com.xxx.EDIMessenger</parameter> 
     <parameter name="transport.vfs.FileURI" locked="false" type="1">file:///D:/WSO2/content</parameter> 
     <parameter name="transport.vfs.FileNamePattern" locked="false" type="1">.*\.*</parameter> 
     <parameter name="transport.vfs.ContentType" locked="false" type="1">text/plain</parameter> 
     <parameter name="transport.vfs.ActionAfterProcess" locked="false" type="1">MOVE</parameter> 
     <parameter name="transport.PollInterval" locked="false" type="1">15</parameter> 
     <parameter name="transport.vfs.MoveAfterProcess" locked="false" type="1">file:///D:/WSO2/original</parameter> 
    </service> 
</serviceGroup> 

当我想这个,我收到以下异常:

[2014-06-23 12:37:29,981] ERROR - AxisEngine The endpoint reference (EPR) for the Operation not found is /services/EDIMe 
ssenger and the WSA Action = urn:mediate. If this EPR was previously reachable, please contact the server administrator. 

org.apache.axis2.AxisFault: The endpoint reference (EPR) for the Operation not found is /services/EDIMessenger and the W 
SA Action = urn:mediate. If this EPR was previously reachable, please contact the server administrator. 
     at org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:102) 
     at org.apache.axis2.engine.Phase.invoke(Phase.java:329) 
     at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:261) 
     at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:167) 
     at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:403) 
     at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:183) 
     at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
     at java.lang.Thread.run(Thread.java:662) 
[2014-06-23 12:37:29,984] ERROR - ServerWorker Error processing POST request for : /services/EDIMessenger 
org.apache.axis2.AxisFault: The endpoint reference (EPR) for the Operation not found is /services/EDIMessenger and the W 
SA Action = urn:mediate. If this EPR was previously reachable, please contact the server administrator. 
     at org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:102) 
     at org.apache.axis2.engine.Phase.invoke(Phase.java:329) 
     at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:261) 
     at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:167) 
     at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:403) 
     at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:183) 
     at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
     at java.lang.Thread.run(Thread.java:662) 

任何建议上我可能做错了什么将高度赞赏。

回答

0

替换为您的机器的IP地址的本地主机,这应该工作,如果该服务启动并运行