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 :

Consommation d'un service web déployé sous Axis2 en POJO


Sujet :

Services Web Java

  1. #1
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 207
    Points : 215
    Points
    215
    Par défaut Consommation d'un service web déployé sous Axis2 en POJO
    Bonjour à tous,

    J'ai déployé un service web POJOService avec Axis2 sous Tomcat 6.0. Ce service comporte une opération sayHello qui retourne une String à partir d'une autre String.

    Voici le code du service POJOService :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    package service;
     
    public class POJOService {
      public String sayHello(String name) {
        return "Hello " + name + " !";
      }
    }
    Voici le fichier services.xml associé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <service name="POJOService">
      <parameter name="ServiceClass">service.POJOService</parameter>
      <operation name="sayHello">
        <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" />
      </operation>
    </service>
    Le service POJOService est effectivement déployé et son contrat WSDL est accessible à l'URL http://localhost:8080/axis2/services/POJOService?wsdl :
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:ns="http://service" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://service">
        <wsdl:documentation>POJOService</wsdl:documentation>
        <wsdl:types>
            <xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://service">
                <xs:element name="sayHello">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element minOccurs="0" name="sayHello" nillable="true" type="xs:anyType"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="sayHelloResponse">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element minOccurs="0" name="return" nillable="true" type="xs:anyType"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
        </wsdl:types>
        <wsdl:message name="sayHelloRequest">
            <wsdl:part name="parameters" element="ns:sayHello"/>
        </wsdl:message>
        <wsdl:message name="sayHelloResponse">
            <wsdl:part name="parameters" element="ns:sayHelloResponse"/>
        </wsdl:message>
        <wsdl:portType name="POJOServicePortType">
            <wsdl:operation name="sayHello">
                <wsdl:input message="ns:sayHelloRequest" wsaw:Action="urn:sayHello"/>
                <wsdl:output message="ns:sayHelloResponse" wsaw:Action="urn:sayHelloResponse"/>
            </wsdl:operation>
        </wsdl:portType>
        <wsdl:binding name="POJOServiceSoap11Binding" type="ns:POJOServicePortType">
            <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
            <wsdl:operation name="sayHello">
                <soap:operation soapAction="urn:sayHello" style="document"/>
                <wsdl:input>
                    <soap:body use="literal"/>
                </wsdl:input>
                <wsdl:output>
                    <soap:body use="literal"/>
                </wsdl:output>
            </wsdl:operation>
        </wsdl:binding>
        <wsdl:binding name="POJOServiceSoap12Binding" type="ns:POJOServicePortType">
            <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
            <wsdl:operation name="sayHello">
                <soap12:operation soapAction="urn:sayHello" style="document"/>
                <wsdl:input>
                    <soap12:body use="literal"/>
                </wsdl:input>
                <wsdl:output>
                    <soap12:body use="literal"/>
                </wsdl:output>
            </wsdl:operation>
        </wsdl:binding>
        <wsdl:binding name="POJOServiceHttpBinding" type="ns:POJOServicePortType">
            <http:binding verb="POST"/>
            <wsdl:operation name="sayHello">
                <http:operation location="POJOService/sayHello"/>
                <wsdl:input>
                    <mime:content type="text/xml" part="sayHello"/>
                </wsdl:input>
                <wsdl:output>
                    <mime:content type="text/xml" part="sayHello"/>
                </wsdl:output>
            </wsdl:operation>
        </wsdl:binding>
        <wsdl:service name="POJOService">
            <wsdl:port name="POJOServiceHttpSoap11Endpoint" binding="ns:POJOServiceSoap11Binding">
                <soap:address location="http://10.63.0.52:8080/axis2/services/POJOService.POJOServiceHttpSoap11Endpoint"/>
            </wsdl:port>
            <wsdl:port name="POJOServiceHttpSoap12Endpoint" binding="ns:POJOServiceSoap12Binding">
                <soap12:address location="http://10.63.0.52:8080/axis2/services/POJOService.POJOServiceHttpSoap12Endpoint"/>
            </wsdl:port>
            <wsdl:port name="POJOServiceHttpEndpoint" binding="ns:POJOServiceHttpBinding">
                <http:address location="http://10.63.0.52:8080/axis2/services/POJOService.POJOServiceHttpEndpoint"/>
            </wsdl:port>
        </wsdl:service>
    </wsdl:definitions>
    Toutefois, je ne parviens à consommer ce service ni à partie d'une URL, ni à partir d'un client Axis (invocation dynamique, utilisation du stub généré avec WSDL2Java), ni à partir d'un client Axis2 (parsing du WSDL sous Eclipse, utilisation du stub généré avec wsdl2java).

    Des suggestions ?

    Merci à vous.

  2. #2
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 207
    Points : 215
    Points
    215
    Par défaut
    La ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" />
    du fichier services.xml est à remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
    Il semblerait que RawXMLINOutMessageReceiver n'ait seulement accès à des messages XML (avec AXIOM), tandis que RPCMessageReceiver supporte les types Java simples, les JavaBeans, mais aussi les messages XML...

    Si vous avez des infos supplémentaires là-dessus, n'hésitez pas...

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

Discussions similaires

  1. [Tutoriel] Consommation d'un service web avec la librairie KSOAP sous Android
    Par MasterMbg dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 01/08/2015, 01h01
  2. Service Web déployé dans le document root d'Apache
    Par haddarachraf dans le forum Apache
    Réponses: 5
    Dernier message: 14/07/2010, 10h21
  3. Connection SQL Azure via Service Web hebergé sous Windows Azure
    Par Jphilip74 dans le forum Microsoft Azure
    Réponses: 1
    Dernier message: 21/12/2009, 16h58
  4. Réponses: 0
    Dernier message: 15/05/2009, 14h07
  5. Réponses: 0
    Dernier message: 06/09/2007, 11h33

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