【发布时间】:2014-05-02 22:53:31
【问题描述】:
在工作中,我必须实施 EDI。我必须创建一条 XML 消息,使用证书对其进行签名,使用 Base64 对其进行编码,将其打包成 XML 结构并将其发送到服务器。
要将消息发送到肥皂服务,我使用HTTPSOAPConnection。我遇到的问题是,我总是收到503 service unavailable 错误。
我想还好,服务没有启动,但出于好奇,我尝试使用SoapUi 联系它。将相同的消息发送到相同的服务端点,我得到一个 HTTP 200 Ok,带有响应消息。
分析我发现的这个响应,里面有一个Base64 encoed xml,就像服务文档说的那样。解码这个我发现,服务器给我发了一个错误代码,说服务不可用。
但怎么可能,我的 java 生成的请求我得到一个 503 和 SoapUi 我得到一个服务特定的响应,包含 503 的服务特定的错误代码?
我唯一能想到的是,我的请求有问题。但是 Http 503 还有什么其他原因呢?我如何分析错误(例如将 SoapUi 的 MimeHeader 与我的进行比较......)?
我可以给你的另一个信息是发生错误的块:从HTTPSOAPConnection的第245行开始
responseCode = httpConnection.getResponseCode();
// let HTTP_INTERNAL_ERROR (500) through because it is used for SOAP faults
if (responseCode == HttpURLConnection.HTTP_INTERNAL_ERROR) {
isFailure = true;
}
//else if (responseCode != HttpURLConnection.HTTP_OK)
//else if (!(responseCode >= HttpURLConnection.HTTP_OK && responseCode < 207))
else if ((responseCode / 100) != 2) {
log.log(Level.SEVERE,
"SAAJ0008.p2p.bad.response",
new String[] {httpConnection.getResponseMessage()});
throw new SOAPExceptionImpl(
"Bad response: ("
+ responseCode
+ httpConnection.getResponseMessage()
);
}
我收到此“错误响应”,带有 503 响应代码且没有响应消息。 我希望这些信息足以,至少,得到一些猜测。
【问题讨论】:
标签: java web-services http soap soapui