2015-08-20 54 views
5

Próbuję wysłać wiadomość przez TCP w ramach wso2. Otrzymuję ten wyjątek w dzienniku:Wysyłanie wiadomości na gniazdo wso2, uzyskanie wyjątku

[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) 

Po to conf oś2 zacząć TCP:

<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> 

I 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

Poprawiono gramatykę i kod formatowania – Tunaki

+0

[ sprawdź, czy to ci pomoże] (http://stackoverflow.com/questions/17362982/tcp-transport-in-proxy-wso2-esb) –

Odpowiedz

1

To brzmi jak żaden pełnomocnika usługę można znaleźć w ESB, gdy wiadomość zostanie odebrana na porcie 6060 tcp.

Nie jestem przyzwyczajony do transportu TCP w WSO2 ale zastanawiam się, czy „transportuje” atrybut w was definicja Pełnomocnictwo powinno zawierać „tcp” zamiast „https http”:

<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

Twoja sugestia była przydatna. Po zmianie transportu na 'tcp' muszę usunąć konfigurację 'tcp' z osi2.conf, w przeciwnym razie nie działał – Raaghu