2015-08-20 22 views
5

Tôi đang cố gắng gửi thông báo qua TCP trong khung công tác wso2. Tôi nhận được ngoại lệ này trong nhật ký:Gửi tin nhắn trên ổ cắm wso2, nhận ngoại lệ

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

Tiếp theo là conf axis2 để bắt đầu 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> 

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

Fixed ngữ pháp và mã định dạng – Tunaki

+0

[ kiểm tra xem điều này có giúp bạn không] (http://stackoverflow.com/questions/17362982/tcp-transport-in-proxy-wso2-esb) –

Trả lời

1

Nghe có vẻ như không có proxy dịch vụ có thể được tìm thấy trong ESB khi nhận được tin nhắn trên cổng tcp 6060.

Tôi không sử dụng để vận chuyển tcp trong WSO2 nhưng tôi tự hỏi, nếu các "vận chuyển" thuộc tính trong bạn định nghĩa Proxy nên chứa "tcp" thay vì "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

Đề xuất của bạn hữu ích. Sau khi thay đổi vận chuyển sang 'tcp' tôi cần phải loại bỏ cấu hình 'tcp' khỏi axis2.conf, nếu không nó không hoạt động – Raaghu

Các vấn đề liên quan