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 :

wsdl : appel d'une methode via le navigateur


Sujet :

Services Web Java

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut wsdl : appel d'une methode via le navigateur
    Bonjour,
    J'ai un wsdl ci-dessous que j'ai extrait à partir du navigateur (
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://127.0.0.1:9090/echo/Echo?wsdl
    ) et je souhaiterai invoquer la méthode echo à partir du navigateur, comme faire ?
    - Sachant que ce mini service web a été fait en jax-ws et tourne sur jboss 4.2.ga.
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    - <definitions name="EchoService" targetNamespace="http://echo/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://echo/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    - <types>
    - <xs:schema targetNamespace="http://echo/" version="1.0" xmlns:tns="http://echo/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:element name="echo" type="tns:echo" /> 
      <xs:element name="echoResponse" type="tns:echoResponse" /> 
    - <xs:complexType name="echo">
    - <xs:sequence>
      <xs:element minOccurs="0" name="arg0" type="xs:string" /> 
      </xs:sequence>
      </xs:complexType>
    - <xs:complexType name="echoResponse">
    - <xs:sequence>
      <xs:element minOccurs="0" name="return" type="xs:string" /> 
      </xs:sequence>
      </xs:complexType>
      </xs:schema>
      </types>
    - <message name="Echo_echoResponse">
      <part element="tns:echoResponse" name="echoResponse" /> 
      </message>
    - <message name="Echo_echo">
      <part element="tns:echo" name="echo" /> 
      </message>
    - <portType name="Echo">
    - <operation name="echo" parameterOrder="echo">
      <input message="tns:Echo_echo" /> 
      <output message="tns:Echo_echoResponse" /> 
      </operation>
      </portType>
    - <binding name="EchoBinding" type="tns:Echo">
      <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> 
    - <operation name="echo">
      <soap:operation soapAction="" /> 
    - <input>
      <soap:body use="literal" /> 
      </input>
    - <output>
      <soap:body use="literal" /> 
      </output>
      </operation>
      </binding>
    - <service name="EchoService">
    - <port binding="tns:EchoBinding" name="EchoPort">
      <soap:address location="http://127.0.0.1:9090/echo/Echo" /> 
      </port>
      </service>
      </definitions>
    voici donc la classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    package echo;
    @javax.jws.WebService
    public class Echo
    {
     public String echo(String input)
     {
     return input;
     }
    }
    Sachant que j'ai testé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://127.0.0.1:9090/echo/Echo?method=echo&arg0=10
    comme avec axis, mais ça ne marche pas, elle me renvoie une erreur 405, comme si je tappais n'importe quoi après /Echo?....

    Merci pour votre aide.

  2. #2
    Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 74
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par Adonis91 Voir le message
    Sachant que j'ai testé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://127.0.0.1:9090/echo/Echo?method=echo&arg0=10
    Pour moi, faire ainsi serait pour une servlet par exemple.

    Pour un web service, va falloir créer ton client en java

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Freyja Voir le message
    Pour moi, faire ainsi serait pour une servlet par exemple.

    Pour un web service, va falloir créer ton client en java
    Merci pour ta réponse,
    créer un client java c'est ce que j'ai fait pour tester le web service, ce que je n'arrive pas a comprendre au fait, c'est lorsqu'on est en style RPC (axis1) on arrive à invoquer la méthode du web service à partir du navigateur (protocole http sur qui repose soap), on obtient donc un résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost:8080/axis/Echo.jws?method=echo&input=toto
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?xml version="1.0" encoding="UTF-8" ?> 
    - <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    - <soapenv:Body>
    - <echoResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <echoReturn xsi:type="xsd:string">toto</echoReturn> 
      </echoResponse>
      </soapenv:Body>
      </soapenv:Envelope>
    pour une classe Echo.jws
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    package axis;
     
    public class Echo
    {
     public String echo(String input)
     {
     return input;
     }
    }
    Tu peux tester ce code en mettant la classe Echo.jws dans [CATALINA_HOME]/webapps/axis, tu verras que tu peux invoquer l'opération echo.

    Je l'ai aussi déployé en jar et avec un descripteur de déploiement wsdd (axis1), j'arrive tout de meme à invoquer la méthode echo via le navigateur.

    par ailleurs, en passant le code de la classe en jax-ws(mode literal) avec tomcat5(avec axis2) et jboss4.2.0(sans axis) sous forme jar, war, ear, j'arrive a visualiser le wsdl, mais pas moyen de faire appel à la methode sinon, une erreur http 405.

    Est-ce que tu pourrais me donner un exemple concret d'appel d'une opération d'un web service en jax-ws à partir du navigateur (avec -pour faire simple- la classe echo par exemple) ?

Discussions similaires

  1. Appel d'une methode VBA en C++
    Par safae dans le forum C++
    Réponses: 8
    Dernier message: 14/04/2006, 14h53
  2. forcer l'appel d une methode apres un repaint
    Par ceres02 dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 11/03/2006, 00h17
  3. [Language]problème lors de l'appel d'une méthode
    Par Samanta dans le forum Langage
    Réponses: 6
    Dernier message: 18/05/2005, 13h03
  4. Appel d'une routine via IRQ_9
    Par mickael777 dans le forum C
    Réponses: 15
    Dernier message: 10/01/2005, 10h08
  5. [Reflection][Bean] Appel d'une méthode dynamiquement
    Par eraim dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 28/04/2004, 11h07

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