Java添加不带xmlns属性的SOAP头
我需要向SOAP请求添加一个标头,并使用以下代码执行此操作:Java添加不带xmlns属性的SOAP头,java,soap,http-headers,Java,Soap,Http Headers,我需要向SOAP请求添加一个标头,并使用以下代码执行此操作: INotificationManagement notification = host.getBasicHttpBindingINotificationManagement(); WSBindingProvider bp = (WSBindingProvider)notification; bp.setOutboundHeaders(Headers.create(newQName("bob:sessionId"),s
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>
aosidaosi
问题是我不希望xmlns属性存在……它应该是
我尝试了所有新的QName方法,但它仍然保留了xmlns属性
是否仍然可以创建没有xmlns属性的头?您必须在某个地方声明“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>
奥斯多斯
...
....
我如何才能将xmlns:bob添加到S:Header?@doiter,因为javax.xml.soap.SOAPHeader
实现了org.w3c.dom.Element
,我相信你可以通过setAttribute
或setAttributes
方法来实现。我不能在Header上添加.setAttribute。创建(…).setAttribute,我只有SOAPHeader作为接口。我错过什么了吗?