在工作中,我必須實現一個EDI事情。我必須創建一個XML消息,使用證書籤名,使用Base64
對其進行編碼,然後將其打包爲XML結構並將其發送到服務器。 要發送消息到肥皂服務我使用HTTPSOAPConnection。我碰到的問題是,我總是得到一個503 service unavailable
錯誤。
我認爲沒關係服務沒有啓動,但爲了好奇,我試着用SoapUi
來達到目的。發送相同的消息到相同的服務端點我得到一個HTTP 200 Ok
,與一個響應消息。
分析這個響應我發現,裏面有一個Base64
encoed xml,就像服務文檔說的那樣。解碼我發現,服務器給我發送了一個錯誤代碼,說服務不可用。
但是怎麼可能呢,用我的java生成的請求我得到一個503和SoapUi我得到一個服務特定的響應,包含服務特定的錯誤代碼爲503? 我唯一能想到的就是,我的要求出了問題。但是,Http 503還有什麼其他原因?我如何分析錯誤(例如比較SoapUi的MimeHeader
與我的...)? One的詳細信息,我可以給你的是在錯誤occures塊:在行245開始的HTTPSOAPConnectionHTTP 503服務不可用的原因錯誤
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應答和無應答消息。 我希望這些信息足以至少得到一些猜測。