0

我最近问了一个关于使用 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

4

2 回答 2

0
SAAJ0008: Bad Response; null

此错误消息表明服务器以错误消息(例如 HTTP4XX5XX)响应。在这种情况下,null 是指 java 类无法将错误代码转换为关联的消息。例如,状态码 400、501 和 543 将产生以下错误消息:

SAAJ0008: Bad Response; Bad Request
SAAJ0008: Bad Response; Not Implemented
SAAJ0008: Bad Response; null

很可能您的服务器对请求的格式非常挑剔,并且您发送的特定请求无法正确处理。我建议您尝试验证使用 java 套接字库和 SOAPConnection 发送的请求之间的差异,看看是否有差异。

于 2012-04-23T21:02:57.523 回答
0

这是一个老问题,但我在连接 Zimbra SOAP UI 时遇到了同样的问题。问题是肥皂地址问题Java 上的 SOAP 请求不起作用,但在 PHP 上有效。该链接有正确的解决方案

于 2020-12-09T07:36:17.257 回答