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