IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Java Discussion :

Web services, sécurité, java vers IIS


Sujet :

Services Web Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 24
    Points : 20
    Points
    20
    Par défaut Web services, sécurité, java vers IIS
    Bonjour à tous,

    J'essaie depuis plusieurs jours de faire discuter mon web service réalisé en .NET tournant sur un serveur IIS à partir d'un client Java en passant un username et password dans l'en-tête.

    Le web service fonctionne bien.
    J'ai créé un web service bidon sur axis et je l'ai sécurisé grâce au paramétrage d'axis/tomcat (J'ai suivi ce tutorial)

    Quand j'essaie d'appeler le web service .NET de manière sécurisé j'obtiens invariablement cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    AxisFault
     faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client
     faultSubcode: 
     faultString: Le serveur n'a pas reconnu la valeur de l'en-tête HTTP SOAPAction : .
     faultActor: 
     faultNode: 
     faultDetail: 
    	{http://xml.apache.org/axis/}stackTrace:Le serveur n'a pas reconnu la valeur de l'en-tête HTTP SOAPAction : .
    	at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
    L'appel de mon web service est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    String endpoint = "http://serveurIIS/context/Annuaire.asmx";
    		    Service service = new Service();
    		    Call    call    = (Call) service.createCall();
    		    call.setTargetEndpointAddress( new java.net.URL(endpoint) );
    		    call.setOperationName(new QName("getListeIndividus"));
     
    		    call.setUsername("username");
    		    call.setPassword("password");
     
    		    CollaboratorList ret = (CollaboratorList) call.invoke( new Object[] { "paramValue" } );
     
    		    System.out.println("Sent 'paramValue!', got '" + ret + "'");
    Merci pour votre aide car je désespère !

  2. #2
    Membre régulier
    Profil pro
    Abcde
    Inscrit en
    Août 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Abcde
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2004
    Messages : 59
    Points : 79
    Points
    79
    Par défaut
    probleme d'implémentation interne dans axis.
    perso, j'abandonne axis V1 (lourd, buggé). pour l'excellent XFIRE.
    http://xfire.codehaus.org/

    @+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 24
    Points : 20
    Points
    20
    Par défaut
    Renseignements pris (mais très très difficile à trouver !!!), axis 1.4 (celui que j'utilise) fonctionne bien.
    Il faut changer le mode de transport vers IIS dans le client-config.wsdd. Voici le code que j'ai utilisé pour ceux que cela intéresse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Service locator = new ServiceLocator();
    ServiceeSoap ws = locator.getServiceSoap();
    ((ServiceSoapStub)ws).setUsername("username");
    ((ServiceSoapStub)ws).setPassword("password");
    et voici mon client-config.wsdd modifié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?xml version="1.0" encoding="UTF-8"?>
    <deployment name="defaultClientConfig"
                xmlns="http://xml.apache.org/axis/wsdd/"
                xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
     <globalConfiguration>
       <parameter name="disablePrettyXML" value="true"/>
       <parameter name="enableNamespacePrefixOptimization" value="false"/>
     </globalConfiguration>
    <!-- utilisé en général --> 
    <!-- <transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender"/> -->
    <!-- utilisé pour la connexion avec IIS -->
     <transport name="http" pivot="java:org.apache.axis.transport.http.CommonsHTTPSender"/>
     <transport name="local" pivot="java:org.apache.axis.transport.local.LocalSender"/>
     <transport name="java" pivot="java:org.apache.axis.transport.java.JavaSender"/>
    </deployment>
    Attention, il y des jars à rajouter s'ils ne sont pas présents dans votre classpath :
    - commons-codec-1.3.jar
    - commons-httpclient-3.0.1.jar

    Je crois que c'est tout... Ce n'est pas compliqué, mais ces informations sont *impossibles* à trouver !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant][WebServices] Créer un Web service en java
    Par JeffK dans le forum Services Web
    Réponses: 5
    Dernier message: 24/07/2011, 12h11
  2. comment developper un web service avec java et oracle
    Par kheira dans le forum Services Web
    Réponses: 4
    Dernier message: 26/04/2011, 16h29
  3. Réponses: 1
    Dernier message: 03/03/2009, 11h09
  4. web services en java
    Par malikoo dans le forum Services Web
    Réponses: 2
    Dernier message: 24/04/2006, 17h02
  5. Comment consommer un web service en java
    Par Vins83 dans le forum Services Web
    Réponses: 1
    Dernier message: 16/01/2006, 23h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo