2009-07-31 31 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からSEE Webサービスに話し:

は、あなたはおそらくこれが欲しいです。 MicrosoftのSEE Webサービスは標準に準拠していません(衝撃的です、私は知っています)。

関連する問題