当使用此代码发送我的肥皂 xml 时,我想通过 TCP 传输向代理服务发送请求
Socket clientSocket = new Socket("host", port);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
outToServer.writeBytes("soap xml instance");
clientSocket.close();
它工作正常,我的生意还在继续。
但是当我发送两个 xml 而不像这样关闭套接字时:
Socket clientSocket = new Socket("host", port);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
outToServer.writeBytes("soap xml instance");
outToServer.writeBytes("another soap instance");
clientSocket.close();
它总是抛出这个异常:
TID:[0] [ESB] [2013-06-28 13:36:10,838] 错误 {org.apache.axis2.transport.tcp.TCPWorker} - 通过 Axis2 引擎 {org.apache.axis2 处理 TCP 请求时出错.transport.tcp.TCPWorker} org.apache.axiom.om.OMException: com.ctc.wstx.exc.WstxParsingException: 非法处理指令目标(“xml”);xml(不区分大小写)由规范保留。在 [row,col {unknown-source}]: [2,5] 在 org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:296) 在 org.apache.axiom.om.impl .llom.OMDocumentImpl.buildNext(OMDocumentImpl.java:135) 在 org.apache.axiom.om.impl.llom.OMNodeImpl.getNextOMSibling(OMNodeImpl.java:122) 在 org.apache.axiom.om.impl.llom.OMElementImpl .getNextOMSibling(OMElementImpl.java:343) 在 org.apache.axiom.om.impl.traverse。ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) 原因:com .ctc.wstx.exc.WstxParsingException:非法处理指令目标(“xml”);xml(不区分大小写)由规范保留。在 [row,col {unknown-source}]: [2,5] at com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:606) at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner .java:479) 在 com.ctc.wstx.sr.BasicStreamReader.readPIPrimary(BasicStreamReader.java:3903) 在 com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2037) 在 com.ctc.wstx。 sr.BasicStreamReader.closeContentTree(BasicStreamReader.java:
我使用附加 '\n', "\r\n" 到我的消息,但他们都没有做到这一点。
我也尝试使用此链接中说明的方法。如何使用 TCP 传输发送 SOAP 消息,它运行良好。
但是我不能在我的项目中使用那种 api。我怎样才能摆脱这个问题。