0
我試圖獲得期望的自定義標題爲我的SOAP請求:添加定製SOAP頭在Java中
我需要什麼:
<soapenv:Header>
<urn:SessionHeader>
<urn:sessionId>abcdef1234</urn:sessionId>
</urn:SessionHeader>
</soapenv:Header>
但是我得到的是:
<SOAP-ENV:Header>
<urn:sessionId xmlns:urn="www.dummy.com">
abcdef1234
</urn:sessionId>
</SOAP-ENV:Header>
我需要從孩子節點刪除xmlns
!
下面是Java代碼我使用:
SOAPHeader header = soapMessage.getSOAPHeader();
SOAPHeaderElement messageId = soapMessage.getSOAPHeader().addHeaderElement(new QName("www.dummy.com", "sessionId","urn"));
messageId.setTextContent("urn:abcdef1234");
如何處理這個有什麼建議?
爲什麼你要刪除的命名空間聲明,但仍使用一個命名空間? - 在接收端使用支持命名空間的解析器。 – JimmyB
嗨! @JimmyB,接收端不在我的控制之下...... :( 是不是有其他的方法可以讓我做到這一點? –
對不起,我不知道,但是我確實知道使用沒有名字空間聲明它產生無效的XML - 也許值得一試:'addHeaderElement('['soapEnvelope.createName(「urn:sessionId」)'](http://docs.oracle.com/javaee/5/api/javax/xml /soap/SOAPEnvelope.html#createName%28java.lang.String%29)')'。 – JimmyB