簡體   English   中英

如何在Axis 1客戶端中處理HTTP錯誤代碼

[英]How do I handle HTTP error codes in an Axis 1 client

我們正在運行Axis 1 Java客戶端。 該Web服務有時會返回HTTP錯誤代碼500和一些無意義的HTML正文內容。 在這種情況下,我們得到

javax.xml.soap.SOAPException: org.xml.sax.SAXParseException: Content is not allowed in prolog. at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
    at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
    at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
    at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
    at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:796) 

我敢肯定有一種捕獲HTTP錯誤的簡便方法,這樣就沒有類試圖讀取SOAP信封,但是我一直無法找到適合Google的術語。

如何配置Axis(client-config.wsdd)或需要實現哪些處理程序,以便可以正確處理HTTP錯誤代碼> = 400的Web服務回復?

謝謝西蒙

原因在於Axis本身。

org.apache.axis.transport.http.HTTPSender#readFromSocket()

將記錄(級別調試)

log.debug(outMsg.getSOAPEnvelope().toString());

如果沒有有效的SOAP信封,則該調用將導致上面的stacktrace。

西蒙

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM