2014-06-23 106 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地址的本地主機,這應該工作,如果該服務啓動並運行