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