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 Discussion :

Appel de WebService Java


Sujet :

Services Web

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 14
    Points : 18
    Points
    18
    Par défaut Appel de WebService Java
    Bonjour,

    je poste ici car après recherches, je n'ai rien trouvé sur le sujet qui m'intéresse.

    Je dispose d'un WebService écrit en Java (J2EE JAX-WS) et j'aimerais le contacter via une WPF. Jusque là, aucun problème - le web service fonctionne et le client aussi.

    Le problème est que mon web service doit être protégé (authentification) via des Soap Header (Username et Password). Je dois donc adapter mon client afin de lui transmettre ces SoapHeaders. Et c'est là que je cale. Je ne sais pas comment m'y prendre pour les ajouter de manière propre... Un peu d'aide serait la bienvenue.

    J'ai déjà créer une classe en C# qui contient l'username et le password. Cela dit, je ne sais pas si je dois annoter mes propriétés ou autre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public class Header : SoapHeader
        {
            public Header() : base()
            { }
     
            public Header(string userName, string Password) : base()
            {
                username = userName;
                password = Password;
            }
     
            public string username { get; set; }
            public string password { get; set; }
        }
    Merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Points : 346
    Points
    346
    Par défaut
    Salut Kaikait,

    As-tu essayé depuis c# d'atteindre le service Web avec httpWebrequest et httpWebresponse?

    Cédric

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 14
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par Cédric B. Voir le message
    Salut Kaikait,

    As-tu essayé depuis c# d'atteindre le service Web avec httpWebrequest et httpWebresponse?

    Cédric
    Bonjour Cédric !

    Malheureusement, je ne peux pas le faire avec ça (c'est un travail pour un cours).
    Néanmoins, j'ai trouvé la solution à mon problème et je la poste au cas où quelqu'un avait le même problème.

    Il faut une classe contenant les propriétés à mettre dans le SOAPHeader (dans mon cas je l'ai appelée Header - très original ) :
    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
    public class Header : SoapHeader
        {
            public string username { get; set; }
            public string password { get; set; }
     
            public Header() : base()
            {
            }
     
            public Header(string username, string password) : base()
            {
                this.username = username;
                this.password = password;
            }
        }
    Ensuite, il faut créer un Handler héritant de SOAPExtension :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    public class Handler : SoapExtension
        {
            public override object GetInitializer(Type serviceType)
            {
                return null;
            }
     
            public override object GetInitializer(LogicalMethodInfo methodInfo, SoapExtensionAttribute attribute)
            {
                return null;
            }
     
            public override void Initialize(object initializer)
            {
            }
     
            public override void ProcessMessage(SoapMessage message)
            {
                if (message.Stage == SoapMessageStage.BeforeSerialize)
                {
                    /* C'est ici que l'on ajoute le header aux messages SORTANTS */
                    Header soapHeader = new Header("admin", "1234");
                    SoapClientMessage scm = (SoapClientMessage)message;
                    scm.Headers.Add(soapHeader);
                }
            }
        }
    et finalement modifier le fichier de configuration de l'application ("app.config") et y rajouter ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <system.web>
        <webServices>
          <soapExtensionTypes>
            <add type="NAMESPACE.HANDLER, ASSEMBLY DU HANDLER" priority="1" group="Low" />
          </soapExtensionTypes>
        </webServices>
      </system.web>
    en modifiant le NAMESPACE.HANDLER par votre handler et ASSEMBLY DU HANDLER par le nom de l'assembly de votre handler.

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

Discussions similaires

  1. Appel à une application java depuis un webservice
    Par kraps dans le forum Services Web
    Réponses: 1
    Dernier message: 17/11/2011, 16h29
  2. Appel webservice Java par la crontab ?
    Par babyboy dans le forum Administration système
    Réponses: 1
    Dernier message: 26/05/2009, 00h53
  3. Appeler Webservice JAVA securisé
    Par nitrous007 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 28/02/2008, 17h05
  4. [Excel][VBA][Java] Appeler un objet java
    Par ay_pepito dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/07/2005, 16h46
  5. Unité Delphi appelée à partir de JAVA
    Par babaahmed dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 26/04/2003, 11h51

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