在工作中,我必须实施EDI。我必须创建XML消息,使用证书对其进行签名,使用Base64
对其进行编码,将其打包为XML结构并将其发送到服务器。
要将邮件发送到soap服务,请使用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()
);
}
我收到此消息&#34;错误的响应&#34;,有503响应代码且没有响应消息。 我希望这些信息足以至少得到一些猜测。
答案 0 :(得分:0)
似乎,就像我得到这个,导致错误的端点URL。我用作端点的URL实际上是WSDL的URL。端点本身是另一个端点。 我仍然没有得到它的工作,但这是一些SSL,证书,密钥库等东西的原因,我必须首先学习:P它似乎很复杂......