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 に答える