我需要在SOAP请求中添加一个Header,并使用以下代码执行:
INotificationManagement notification = host.getBasicHttpBindingINotificationManagement();
WSBindingProvider bp = (WSBindingProvider)notification;
bp.setOutboundHeaders(Headers.create(newQName("bob:sessionId"),sessionId));
我得到了:
<S:Header><bob:sessionId xmlns="">aosidaosi</bob:sessionId></S:Header>
问题是我不希望xmlns属性存在......它应该只是<bob:sessionId>
我尝试了所有新的QName方法,但它仍然放置了xmlns属性。
是否有没有xmlns属性的标题?
答案 0 :(得分:0)
你必须在某处声明“bob”的命名空间,这是必须的。您可以直接在节点中(如在您的问题中)或父节点中的某个位置执行此操作:
<S:Header xmlns:bob="bob namespace">
<bob:sessionId>aosidaosi</bob:sessionId>
</S:Header>
或甚至更高,在信封水平
<S:Envelope xmlns:S="http://www.w3.org/2001/12/soap-envelope" xmlns:bob="bob namespace">
<S:Header>
<bob:sessionId>aosidaosi</bob:sessionId>
...
</S:Header>
....
</S:Envelope>