Java SOAP web服务错误响应的标头中存在重复命名空间
如果我发送一个标题如下的请求Java SOAP web服务错误响应的标头中存在重复命名空间,java,soap,wsdl,weblogic,Java,Soap,Wsdl,Weblogic,如果我发送一个标题如下的请求 <S:Header> <ns2:transId xmlns="http://test.ws.com/testws" xmlns:ns2="http://test.db.com/db9">123ASD89EDFE7363</ns2:transId> </S:Header> 123ASD89EDFE7363 它可以很好地用于成功响应,而且头中不存在不必要的名称空间。但在出现错误的情况下,
<S:Header>
<ns2:transId xmlns="http://test.ws.com/testws"
xmlns:ns2="http://test.db.com/db9">123ASD89EDFE7363</ns2:transId>
</S:Header>
123ASD89EDFE7363
它可以很好地用于成功响应,而且头中不存在不必要的名称空间。但在出现错误的情况下,来自web服务的响应将与两个名称空间一起发送,这两个名称空间使用相同的头元素默认标识符,如下所示
<S:Header>
<transId xmlns="http://test.ws.com/testws"
xmlns="http://test.db.com/db9">123ASD89EDFE7363</transId>
</S:Header>
123ASD89EDFE7363
由于上述格式,客户端应用程序无法解析响应
客户机工件是使用wsdl中的clientgen生成的。请任何人帮助找到上述问题的解决方案
提前谢谢 你能再描述一下这个问题吗 听起来您发出的HTTP请求的标题值为“123ASD…”,当服务器以OK(200)响应时,它会按预期工作,但当服务器以错误条件(4xx-5xx)响应时,响应会变差 它是否在HTTP响应头中重复相同的头两次 还是发送额外的请求(比如重定向) 像 GET获取一个带有标题的301 repsonse,然后它可能会发送到一个错误页面,但它使用相同的标题两次还是什么
关于标题值的更多信息(是否每次都会更改?)可能会有所帮助…感谢您的回复。它是一个SOAP消息,消息头和消息体都在HTTP上,HTTP并没有任何问题。当我们发送错误的soap请求时,错误响应类似于来自服务器的soap错误或模式验证错误。它不会复制头,但当soap请求使用不必要的名称空间xmlns=”发送时http://test.ws.com/testws“(它与头元素无关,但我的客户端应用程序每次发送请求时都会添加此元素),web服务返回响应,包括上面的响应和所需的xmlns名称空间="http://test.db.com/db9“。我的问题是web服务在发送两个名称空间时没有使用不同的标识符。头值在一个事务期间是静态的,如sessionid