2009-07-31 42 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网络服务不符合标准(令人震惊,我知道)。

相关问题