В wso2 esb websocket пустой ответ - PullRequest
       5

В wso2 esb websocket пустой ответ

0 голосов
/ 08 сентября 2018

В WSO2 ESB я написал API, который отправит запрос, и ответ будет получен в последовательности out, настроенной в axis2.xml.

<api xmlns="http://ws.apache.org/ns/synapse" name="web" context="/web">
   <resource methods="POST">
      <inSequence>
         <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2" type="STRING"/>
         <property name="OUT_ONLY" value="true" scope="default" type="STRING"/>
         <send>
            <endpoint>
               <http method="POST" uri-template="ws://localhost:8080/websocket/server"/>
            </endpoint>
         </send>
      </inSequence>
      <outSequence>
         <send/>
      </outSequence>
      <faultSequence/>
   </resource>
</api>

Приведенный выше API может отправлять данные в WebSocket, но я не могу получить ответ в той последовательности, которую я создал согласно конфигурации в axis2.xml.

outflowDispatchSeq.xml

<?xml version="1.0" encoding="UTF-8"?>
<sequence name="outflowDispatchSeq" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
    <log level="full">
        <property name="message" value="*********************************************************************************************"/>
    </log>
</sequence>

Ответ, который я получаю,

[2018-09-08 23:21:08,715] []  INFO - LogMediator To: , MessageID: urn:uuid:1890ba9a-1aa3-4d20-ae37-ca261951793a, Direction: request, message = ********************************************************************************************, Envelope: <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body/></soapenv:Envelope>

Код сервера websocket (JAVA):

package com.trinity.websocket;

import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.server.ServerEndpoint;

@ServerEndpoint("/server")
public class websocket {
    @OnOpen
    public void handleOpen()
    {
        System.out.println("*****websocket handle open method****");

    }
    @OnMessage
    public String handleMessage(String message)
    {
        System.out.println("message=====>"+message);
        String s="echo-->"+message;
        System.out.println(s);
        return "{\"websocketResponse\":\"dummy\"}";
    }
    @OnClose
    public void handleClose()
    {
        System.out.println("******handleClose****");
    }

    @OnError
    public void handleError(Throwable t)
    {
        t.printStackTrace();

    }

}

В консоли сервера WebSocket я получаю сообщение, отправленное с ESB, и соединение постоянно.

Но для этого сервера webSocket работает тот же API и последовательность, что и выше Ссылка для github . И я получаю ответ Итак, я не получаю то, чего не хватает на сервере или на стороне ESB.

...