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

Websphere Java Discussion :

[WPS 6.2] Webservices intérogation.


Sujet :

Websphere Java

  1. #1
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut [WPS 6.2] Webservices intérogation.
    Bonjour

    je tentais d'exposer le point d'entrée d'une médiation WPS sous forme de web service.

    J'ai suivit la doc en ajoutant un export
    puis une liaison web service. ...

    après déploiement je vois bien mon service dans la console WAS
    Services > Fournisseurs e services > Exportation1_SD486IFHttpService
    lorsque j'affiche le wsdl, j'ai:
    Code xml : 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
    <wsdl:definitions
     name="Exportation1_SD486IFHttp_Service"
     targetNamespace="http://SD486_Librairie/SD486IF/Binding" >
      <wsdl:import
       location="SD486IF.wsdl"
       namespace="http://SD486_Librairie/SD486IF" />
      <wsdl:binding
       name="Exportation1_SD486IFHttpBinding"
       type="Port_0:SD486IF" >
        <soap12:binding
         style="document"
         transport="http://schemas.xmlsoap.org/soap/http" />
        <wsdl:operation name="propagateMessage" >
          <soap12:operation
           soapAction="http://SD486_Librairie/SD486IF/SD486IF/propagateMessage" />
          <wsdl:input name="propagateMessageRequest" >
            <soap12:body use="literal" />
          </wsdl:input>
        </wsdl:operation>
      </wsdl:binding>
      <wsdl:service name="Exportation1_SD486IFHttpService" >
        <wsdl:port
         binding="this:Exportation1_SD486IFHttpBinding"
         name="Exportation1_SD486IFHttpPort" >
          <soap12:address
           location="http://localhost:9080/SD486_APH_EIFEL_OutboundWeb/sca/Exportation1" />
        </wsdl:port>
      </wsdl:service>
    </wsdl:definitions>

    l'input propagateMessageRequest fonction car d'autres ears de la plateforme l'appelle sans dificulté
    mais je ne peux accéder à mon service via cette exposition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost:9080/SD486_APH_EIFEL_OutboundWeb/sca/Exportation1
    ne réponds pas le port semble fermé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Z:\>telnet localhost 9080
    Connexion à localhost...Impossible d'ouvrir une connexion à l'hôte, sur le port 9080: Échec lors de la connexion
    dans "Associations d'ensemble de règles" mon service est associé à "WSAddressing default"

    il me manque une étape quelque part.

    je ne connais pas bien cette partie de WAS et j'ai surement oublié quelque chose. mais dans la doc de WPS/WID je n'ai rien de plus après le déploiement.

    autre pb dans WID je suis obligé de mettre une URL complète dans "Liaison > adresse" de mon export ors mon ear va être déployé sur plusieurs serveur

    Cela signifie-t-il que je vais devoir mettre en dur la conf sur chaque serveur
    ou puis-je faire en sorte que le service utilise le nom de la machine sur laquelle il est hébergé ?

    A+JYT

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Je me réponds

    il ne faut pas lire le wsdl dans la console car WAS le redéfinit dynamiquement.

    bref il ne faut pas aller dans
    Services > fournisseurs de services

    mais dans l'ear déployé
    Application > Applications d'entreprise > SD486_APH_EIFEL_OutboundApp > Fournir des informations sur les URL de noeuds finaux HTTP > Préfixe d'URL HTTP

    qui lui fournit l'url cible
    qui est différente de celle d'origine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost:9080/SD486_APH_EIFEL_OutboundWeb/sca/Exportation1/?wsdl
    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost:9081/SD486_APH_EIFEL_OutboundWeb/sca/Exportation1/?wsdl
    le wsdl est redéfinit ainsi
    Code xml : 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
    <wsdl:definitions name="Exportation1_SD486IFHttp_Service" targetNamespace="http://SD486_Librairie/SD486IF/Binding">
    <wsdl:import location="SD486IF.wsdl" namespace="http://SD486_Librairie/SD486IF"/>
    <wsdl:binding name="Exportation1_SD486IFHttpBinding" type="Port_0:SD486IF">
    <soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="propagateMessage">
    <soap12:operation soapAction="http://SD486_Librairie/SD486IF/SD486IF/propagateMessage"/>
    <wsdl:input name="propagateMessageRequest">
    <soap12:body use="literal"/>
    </wsdl:input>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="Exportation1_SD486IFHttpService">
    <wsdl:port binding="this:Exportation1_SD486IFHttpBinding" name="Exportation1_SD486IFHttpPort">
    <soap12:address
     location="http://localhost:9081/SD486_APH_EIFEL_OutboundWeb/sca/Exportation1"/>
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>

    est ça marche avec le nom de la machine
    A+JYT

  3. #3
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    [QUOTE=sekaijin;6003468]...
    après déploiement je vois bien mon service dans la console WAS
    Services > Fournisseurs e services > Exportation1_SD486IFHttpService
    lorsque j'affiche le wsdl, j'ai:
    Code xml : 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
    <wsdl:definitions
     name="Exportation1_SD486IFHttp_Service"
     targetNamespace="http://SD486_Librairie/SD486IF/Binding" >
      <wsdl:import
       location="SD486IF.wsdl"
       namespace="http://SD486_Librairie/SD486IF" />
      <wsdl:binding
       name="Exportation1_SD486IFHttpBinding"
       type="Port_0:SD486IF" >
        <soap12:binding
         style="document"
         transport="http://schemas.xmlsoap.org/soap/http" />
        <wsdl:operation name="propagateMessage" >
          <soap12:operation
           soapAction="http://SD486_Librairie/SD486IF/SD486IF/propagateMessage" />
          <wsdl:input name="propagateMessageRequest" >
            <soap12:body use="literal" />
          </wsdl:input>
        </wsdl:operation>
      </wsdl:binding>
      <wsdl:service name="Exportation1_SD486IFHttpService" >
        <wsdl:port
         binding="this:Exportation1_SD486IFHttpBinding"
         name="Exportation1_SD486IFHttpPort" >
          <soap12:address
           location="http://localhost:9080/SD486_APH_EIFEL_OutboundWeb/sca/Exportation1" />
        </wsdl:port>
      </wsdl:service>
    </wsdl:definitions>

    j'ai un peu avancé et beaucoup reculé
    J'avais créés mon webservice à partir d'une médiation WPS et cela à fonctionné sans pb.
    mais ce n'est pas le contrat de service que je doit rendre.
    l'ai donc cherché à remplacer cette définition de mon service par la bonne
    dont j'ai à l'avance le wsdl
    et là les chose se compliques.
    tout d'abord impossible d'importer mon wsdl dans ma médiation autrement que pour un appel
    en clair l'outils de médiation de WPS/WID ne me propose pas un export mais un import soit donc un appel au service définit dans le WSDL.

    j'ai donc cherché une autre approche. j'ai ajouté une interface à mon concerter en sélectionnant celle définie dans mon wsdl.
    et ça marche sans pb.

    comme dans mon test précédent j'ai ajouté un export que j'ai mappé sur mon interface. jusque là pas de pb.

    ensuite comment exposer ce point d'entré en webservice ?
    WPS/WID ne m'offre qu'une solution qui génère un autre wsdl ne correspondant pas à mon service. (il est quasi identique à l'exemple ci-dessus)

    Chose étrange même si cela fonctionne j'ai un message m'indiquant que mon Port est invalide. (je l'avais aussi dans l'exemple ci-dessus)

    Je ne peux choisir une liaison car il me dit qu'il n'y en a pas dans mon espace de travail (il y en a deux celle de mon wsdl et celle qu'il vient de générer)

    je n'ai pas trouvé d'autre solution que d'éditer à la main mon export et de lui mettre les référence à mon wsdl et non celui généré.

    j'ai donc mis dans export
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?xml version="1.0" encoding="UTF-8"?>
    <scdl:export xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://www.ibm.com/xmlns/prod/websphere/scdl/jaxws/6.0.0" xmlns:ns1="http://SD486_APH_EIFEL/moveStockItem" xmlns:scdl="http://www.ibm.com/xmlns/prod/websphere/scdl/6.0.0" xmlns:wsdl="http://www.ibm.com/xmlns/prod/websphere/scdl/wsdl/6.0.0" displayName="moveStockItems" name="moveStockItems" target="Converter">
      <interfaces>
        <interface xsi:type="wsdl:WSDLPortType" preferredInteractionStyle="sync" portType="ns1:moveStockItems"/>
      </interfaces>
      <esbBinding xsi:type="jaxws:JaxWsExportBinding" port="ns1:moveStockItemsPort" service="ns1:moveStockItemsService"/>
    </scdl:export>
    pour référencer mon service et mon port et j'ai poubélisé le wsdl généré
    ça marche mais je trouce ça plutôt étrange comme façon de faire.
    mon WSDL est (sans les types de données : trop long)
    Code xml : 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
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions name="moveStockItems" targetNamespace="http://SD486_APH_EIFEL/moveStockItem" xmlns:tns="http://SD486_APH_EIFEL/moveStockItem" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/">
      <wsdl:types>
        <xsd:schema targetNamespace="http://SD486_APH_EIFEL/moveStockItem">
    ...
        </xsd:schema>
      </wsdl:types>
      <wsdl:message name="moveStockItemsRequestMsg">
        <wsdl:part element="tns:moveStockItems" name="moveStockItemsParameters"/>
      </wsdl:message>
      <wsdl:message name="moveStockItemsResponseMsg">
        <wsdl:part element="tns:moveStockItemsResponse" name="moveStockItemsResult"/>
      </wsdl:message>
      <wsdl:portType name="moveStockItems">
        <wsdl:operation name="moveStockItems">
          <wsdl:input message="tns:moveStockItemsRequestMsg" name="moveStockItemsRequest"/>
          <wsdl:output message="tns:moveStockItemsResponseMsg" name="moveStockItemsResponse"/>
        </wsdl:operation>
      </wsdl:portType>
      <wsdl:binding name="moveStockItemsBinding" type="tns:moveStockItems">
        <soap12:binding style="document"  transport="http://schemas.xmlsoap.org/soap/http" />
        <wsdl:operation name="moveStockItems">
          <soap12:operation   soapAction="http://SD486_APH_EIFEL/moveStockItem/moveStockItems" />
          <wsdl:input name="moveStockItemsRequest">
            <soap12:body use="literal" />
          </wsdl:input>
          <wsdl:output name="moveStockItemsResponse">
            <soap12:body use="literal" />
          </wsdl:output>
        </wsdl:operation>
      </wsdl:binding>
      <wsdl:service name="moveStockItemsService">
        <wsdl:port name="moveStockItemsPort" binding="tns:moveStockItemsBinding">
          <soap12:address location="http://localhost:9080/SD486_APH_EIFEL_OutboundWeb/sca/moveStockItems"></soap12:address>
        </wsdl:port>
      </wsdl:service>
    </wsdl:definitions>

    reste à savoir pourquoi il dit qu'il n'y a pas de port ???
    pourquoi j'ai un "port invalide" dans ce wsdl et ceux qu'il génère lui-même.

    enfin j'utilise soap1.2 et j'ai un message WS-I fail sur l'absence de port soap1.1
    A+JYT

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. [WebService]Fichier Java et WSDL associé pour Web Services
    Par P4_le_requin_breton dans le forum Services Web
    Réponses: 9
    Dernier message: 23/02/2004, 12h55
  3. [WebServices] - Taux de change
    Par malbaladejo dans le forum Général Dotnet
    Réponses: 7
    Dernier message: 03/02/2004, 16h20
  4. [XMLRAD] Security des WebModules et/ou des WebServices
    Par Lux interior dans le forum XMLRAD
    Réponses: 4
    Dernier message: 18/12/2002, 17h09
  5. WebService Google sur builder 5?
    Par billuh dans le forum C++Builder
    Réponses: 3
    Dernier message: 19/11/2002, 19h43

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