2015-08-20 12 views
5

Ich versuche, eine Nachricht über TCP in Wso2 Framework zu senden. Ich erhalte diese Ausnahme in log:Nachricht auf Wso2-Socket senden, Ausnahme erhalten

[2015-08-20 12:21:50,098] ERROR - TCPWorker Error while processing TCP request through the Axis2 engine 
java.lang.NullPointerException 
     at org.wso2.carbon.tenant.dispatcher.MultitenantDispatcher.findService(MultitenantDispatcher.java:47) 
     at org.apache.axis2.engine.AbstractDispatcher.invoke(AbstractDispatcher.java:94) 
     at org.apache.axis2.engine.Phase.invokeHandler(Phase.java:340) 
     at org.apache.axis2.engine.Phase.invoke(Phase.java:313) 
     at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:261) 
     at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:167) 
     at org.apache.axis2.transport.tcp.TCPWorker.run(TCPWorker.java:68) 
     at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at java.lang.Thread.run(Thread.java:745) 

Nach der axis2 conf ist TCP zu starten:

<transportReceiver name="local" class="org.wso2.carbon.core.transports.local.CarbonLocalTransportReceiver"/> 

<transportReceiver name="tcp" class="org.apache.axis2.transport.tcp.TCPTransportListener"> 
       <parameter name="transport.tcp.port">6060</parameter> 
</transportReceiver> 

Und wso2.xml:

<definitions xmlns="http://ws.apache.org/ns/synapse"> 

    <sequence name="fault"> 
     <makefault> 
      <code xmlns:tns="http://www.w3.org/2003/05/soap-envelope" value="tns:Receiver"/> 
      <reason value="Mediation failed."/> 
     </makefault> 
     <send/> 
    </sequence> 


    <proxy xmlns="http://ws.apache.org/ns/synapse" 
      name="TCPProxy" 
      transports="https,http" 
      statistics="disable" 
      trace="disable" 
      startOnLoad="true"> 
     <target> 
      <inSequence> 
       <log level="full"/> 
      </inSequence> 
      <outSequence> 
       <send/> 
      </outSequence> 
     </target> 
     <parameter name="transport.tcp.port">6060</parameter> 
     <parameter name="transport.tcp.contentType">application/xml</parameter> 
     <description/> 
    </proxy> 
</definitions> 
+0

Feste Grammatik und Code-Formatierung – Tunaki

+0

[ überprüfen Sie, ob dies Ihnen hilft] (http://stackoverflow.com/questions/17362982/tcp-transport-in-proxy-wso2-esb) –

Antwort

1

Es klingt wie kein Proxy Dienst kann in der ESB gefunden werden, wenn eine Nachricht an TCP-Port 6060 empfangen wird.

Ich bin nicht auf TCP-Transport in WSO2 verwendet, aber ich frage mich, ob die "transportiert" Attribut in Ihnen Proxy-Definition sollte "tcp" statt "https, http" enthalten:

<proxy xmlns="http://ws.apache.org/ns/synapse" 
      name="TCPProxy" 
      transports="tcp" 
      statistics="disable" 
      trace="disable" 
      startOnLoad="true"> 
     <target> 
      <inSequence> 
       <log level="full"/> 
      </inSequence> 
      <outSequence> 
       <send/> 
      </outSequence> 
     </target> 
     <parameter name="transport.tcp.port">6060</parameter> 
     <parameter name="transport.tcp.contentType">application/xml</parameter> 
     <description/> 
    </proxy> 
+0

Ihr Vorschlag war nützlich. Nachdem ich den Transport auf 'tcp' geändert habe, muss ich die 'tcp' Konfiguration aus der axis2.conf entfernen, sonst funktioniert es nicht – Raaghu