在升级第三方SOAP API期间,供应商将响应更改为返回。
<env:Envelope xmlns:env='https://schemas.xmlsoap.org/soap/envelope/'>...而不是以前
<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>... 注意从http到https的更改。
这有什么道理吗?
背景:我们的JavaEE代码试图通过com.sun.xml.messaging.saaj.soap.MessageImpl.getSOAPBody().hasFault() (saaj-impl-1.3.jar)检查SOAPFault,因为JavaEE标准将URI_NS_SOAP_ENVELOPE指定为http,因此失败。返回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?
谢谢。
发布于 2017-01-16 18:28:26
SOAP信封具有命名空间标识符"http://schemas.xmlsoap.org/soap/envelope/“。
因此,该消息不是有效的SOAP消息。因为SAAJ是按照SOAP规范设计的,所以它无法处理该消息。
https://stackoverflow.com/questions/41681678
复制相似问题