我最近问了一个关于使用 java 提供的 soap 库构建 SOAP 消息的问题更改默认soap URI,所以这个问题可能最终会渗入这个问题,具体取决于最后一个问题的答案可能是什么(事实上,回答这个问题可能意味着我不必担心我的其他问题)
我已经通过 java 套接字库连接到我正在与之通信的设备并来回传递消息,但是今天我决定使用 java 以 SOAP 的方式提供给我的所有东西,为什么不直接使用它提供的SOAP 库?
嗯,现在很头疼,但我相信一旦它启动并运行它会是有益的。无论哪种方式,当我之前与设备通信时,我只是在 IP 地址xxx.xxx.xxx.xxx
上打开了套接字port 80
,但是当我使用该SOAPConnection.call
方法时,我收到以下错误:
Apr 23, 2012 3:47:06 PM com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection post
SEVERE: SAAJ0008: Bad Response; null
com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Bad response: (-1null
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.call(Unknown Source)
at DeviceCommunicator.openConnection(DeviceCommunicator.java:184)
at ClientRunner.main(ClientRunner.java:29)
Caused by: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Bad response: (-1null
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.post(Unknown Source)
... 3 more
这是电话,如果有帮助的话:
SOAPConnection sc = SOAPConnectionFactory.newInstance().createConnection();
SOAPMessage response = sc.call(sm, "http://xxx.xxx.xxx.xxx");
显然xxx.xxx.xxx.xxx
是设备的IP地址(我已经尝试调用SOAPConnection.call
第二个参数也http://xxx.xxx.xxx.xxx:80
没有成功的方法)。
在仔细阅读了 stackoverflow 和一般的谷歌搜索之后,我还没有找到从套接字通信切换到肥皂时遇到问题的人。
编辑:
不幸的是,我还没有解决问题,但是我确实使用 Wireshark 发现消息正在正确发送,响应也是如此。我很困惑为什么响应会看到“null” - 任何接受者?
提前致谢,
-M