2017-01-16 51 views
0

SOAP命名空間在第三方SOAP API的升級,廠商已經改變了他們的反應返回以http URI

<env:Envelope xmlns:env='https://schemas.xmlsoap.org/soap/envelope/'>... 

,而不是先前

<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>... 

注意從HTTP到HTTPS的變化。

這有效嗎?

背景:我們的Java客戶端代碼試圖通過通過com.sun.xml.messaging.saaj.soap.MessageImpl.getSOAPBody()的調用來檢查的SOAPFault hasFault()(SAAJ-implement執行-1.3.jar。 ),因爲JavaEE標準將URI_NS_SOAP_ENVELOPE指定爲http URI,所以失敗。當API的https響應返回時,URI不匹配並且

Jan 16, 2017 3:47:05 PM com.sun.xml.messaging.saaj.soap.SOAPPartImpl lookForEnvelope 
SEVERE: SAAJ0513: Unable to create envelope from given source because the namespace was not recognized 

被返回。

作爲一種解決方法,SAAJ庫行爲是否可以被重寫以強制使用http SOAP URI?

謝謝。

+0

有關其他信息,如果有人遇到過類似的情況 - 今天早上我發現承載API的服務器位於負載平衡器的後面。正是這樣,重寫了所有的響應,並用「https」替換了所有「http」的實例,而不是供應商的升級。 –

回答