2009-08-24 14 views
5

SOAPエンベロープヘッダーに認証トークンを配置するWebサービスを使用しています。スタブが.NETで生成された場合、このヘッダー情報はスタブクラスのメンバ変数を介して公開されます(WS WSDLに付属のサンプルを参照)。しかし、WSDL2Javaを使用してAxis2 Javaスタブを生成すると、どこにも公開されていないようです。Axis2 SOAPエンベロープヘッダー情報

この情報をSOAPエンベロープヘッダーから抽出する正しい方法は何ですか?

WSDL: http://www.vbar.com/zangelo/SecurityService.wsdl

C#のサンプル:


using System; 
using SignInSample.Security;   // web service 
using SignInSample.Document;   // web service 

namespace SignInSample 
{ 
    class SignInSampleClass 
    { 
     [STAThread] 
     static void Main(string[] args) 
     { 
      // login to the Vault and set up the document service 
      SecurityService secSvc = new SecurityService(); 
      secSvc.Url = "http://localhost/AutodeskDM/Services/SecurityService.asmx"; 
      secSvc.SecurityHeaderValue = new SignInSample.Security.SecurityHeader(); 

      secSvc.SignIn("Administrator", "", "Vault"); 

      DocumentServiceWse docSvc = new DocumentServiceWse(); 
      docSvc.Url = "http://localhost/AutodeskDM/Services/DocumentService.asmx"; 
      docSvc.SecurityHeaderValue = new SignInSample.Document.SecurityHeader(); 
      docSvc.SecurityHeaderValue.Ticket = secSvc.SecurityHeaderValue.Ticket; 
      docSvc.SecurityHeaderValue.UserId = secSvc.SecurityHeaderValue.UserId; 
     } 
    } 
} 

サンプルでは、​​私がやりたいものを示しています。 secSvc.SignIn()呼び出しが成功した後に、secSvcインスタンスにSecurityHeaderValueメンバ変数がどのように設定されているかに注目してください。ここで

SignIn方法に関するいくつかの関連するAPIドキュメントです:

戻り値はありませんが、成功した符号では、セキュリティサービスのSecurityHeaderValueに移入されます。 SecurityHeaderValue情報は、他のWebサービス呼び出しに使用されます。
+0

あなたは、WSDLを投稿し、具体的なものを例を与えることができますか? – skaffman

+0

私は同じ問題を抱えています – LiorH

答えて

1

私は、あなたが探している呼び出しがあると信じて:

MessageContext.getCurrentMessageContext().getEnvelope().getHeader()

関連する問題