В wso2 ESB я хочу вызвать TCP-сервер.В приведенном ниже примере кода я пытался позвонить, но я получил исключение на tcp-сервере, и он не подключается.
<api context="/ex" name="ex" xmlns="http://ws.apache.org/ns/synapse">
<resource methods="POST">
<inSequence>
<property name="ContentType" scope="axis2" type="STRING" value="text/plain"/>
<log level="full"/>
<property name="OUT_ONLY" scope="default" type="STRING" value="true"/>
<property name="FORCE_SC_ACCEPTED" scope="axis2" type="STRING" value="value"/>
<send>
<endpoint>
<address uri="tcp://ipaddress:9090"/>
</endpoint>
</send>
</inSequence>
<outSequence>
<send/>
</outSequence>
<faultSequence/>
</resource>
Java-код для TCP-сервера, который печатает восстановленное сообщение.
public class ser {
public static void main(String[] args) //throws Exception
{
try
{
ServerSocket serverSocket = new ServerSocket(9090);
System.out.println("wainting for clients...");
boolean stop = false;
//while(!stop)
Socket socket = serverSocket.accept();
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println("Hello client!");
BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String clientInput = input.readLine();
System.out.println(clientInput);
input.close();
out.close();
socket.close();
serverSocket.close();
} catch (Exception e)
{
System.out.println(e.toString());
}
}
}
Поскольку ESB api является запросом POST, я звоню в постамане (restclient) с текстом / обычным сообщением, содержащим сообщение привет .
Но когда я звоню из ESB через restclient,Я получаю эти исключения в серверном сокете
java.net.SocketException: программное обеспечение вызвало прерывание соединения: сбой recv
ТАК, как установить соединение tcp в wso2ESB.