2009-08-24 12 views
5

Je consomme un service Web qui place un jeton d'authentification dans l'en-tête de l'enveloppe SOAP. Il semble (en examinant les exemples fournis avec WS WS WS) que si le stub est généré dans .NET, cette information d'en-tête est exposée via une variable membre dans la classe stub. Cependant, quand je génère mon stub java Axis2 en utilisant WSDL2Java, il ne semble pas être exposé nulle part.Informations sur l'en-tête d'enveloppe SOAP Axis2

Quelle est la bonne façon d'extraire cette information de l'en-tête de l'enveloppe SOAP?

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

C# Exemple:


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; 
     } 
    } 
} 

L'exemple illustre ce que je voudrais faire. Notez que l'instance secSvc a une variable membre SecurityHeaderValue qui est remplie après une invocation secSvc.SignIn() réussie.

Voici quelques documentation de l'API pertinente en ce qui concerne la méthode SignIn:

Bien qu'il n'y ait pas de valeur de retour, un signe de succès dans peupleront la SecurityHeaderValue du service de sécurité. Les informations SecurityHeaderValue sont ensuite utilisées pour d'autres appels de service Web.
+0

peut vous donner un exemple, poster wsdl, quelque chose de concret? – skaffman

+0

j'ai le même problème – LiorH

Répondre

1

Je crois que l'appel que vous cherchez est:

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