2009-07-31 60 views
0

這與previous question有關。我已經更新了大部分代碼,但我仍然遇到問題,因此我已經解決了主要問題。我如何讓自定義的SOAPHandler類向SOAP消息中添加一個新元素?我需要在郵件中添加用戶名和密碼。如果我使用:如何使用自定義SOAPHandler添加元素

public boolean handleMessage(SOAPMessageContext context) { 

    SOAPMessage msg = context.getMessage(); 
    SOAPPart part = msg.getSOAPPart(); 
    SOAPEnvelope envelope = part.getEnvelope(); 

    .... //additional header information 

    SOAPElement element.addChildElement("Username", "sse"); 
    element.addTextNode("user1"); 
    element.addChildElement("Password", "sse"); 
    element.addTextNode("1234"); 
} 

我結束了這其中的標籤被關閉,該值不封閉:

<sse:Username/>user1 
<sse:Password/>1234 

我想用此格式的用戶名和密碼,以結束:

<sse:Username>user1</sse:Username> 
<sse:Password>1234</sse:Password> 

如何獲取元素中包含的值(user1和1234)?

回答

0

試試這個:

element.addChildElement("Password", "sse").addTextNode("1234"); 
0
從事實

除了該行

SOAPElement element.addChildElement("Username", "sse"); 

不是有效的Java,你需要記住,addChildElement返回新創建的子元素,而你需要將文本節點添加到該節點,而不是添加到父節點。你所做的所有代碼都是添加一個子節點(空),然後添加一個文本節點,然後是另一個空子節點,然後是另一個文本節點。

你可能想這樣的:

element.addChildElement("Username", "sse").addTextNode("user1"); 
element.addChildElement("Password", "sse").addTextNode("1234"); 

最後一點,說話從Java請參見Web服務只會導致眼淚和脫髮。微軟SEE網絡服務不符合標準(令人震驚,我知道)。

相關問題