0

这与上一个问题有关。我已经解决了主要问题,因为我已经更新了大部分代码,但我仍然有一个问题。如何让自定义 SOAPHandler 类向 SOAP 消息添加新元素?我需要在消息中添加用户名和密码。如果我使用:

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)?

4

2 回答 2

0

尝试这个:

element.addChildElement("Password", "sse").addTextNode("1234");
于 2009-09-07T20:06:02.537 回答
0

除了这条线

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

不是有效的java,您需要记住addChildElement返回新创建的子元素,并且您需要将文本节点添加到该元素,而不是父元素。您所做的所有代码都是添加一个子节点(空),然后添加一个文本节点,然后是另一个空子节点,然后是另一个文本节点。

你可能想要这个:

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

最后一点,从 java 中与 SEE Web 服务对话只会导致流泪和脱发。Microsoft SEE Web 服务不符合标准(我知道,这令人震惊)。

于 2009-09-07T20:10:34.337 回答