[英]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.