Ecriture des extensions WSDL permettant à votre service WSIF d'accéder à un service WSIF d'une destination JMS

Le fournisseur Java™ Message Service (JMS) natif permet aux clients WSIF de traiter un service disponible au niveau d'une destination JMS (Java Message Service) comme un service Web. Utilisez ces informations et les fragments de code associés pour écrire les extensions WSDL.

Avant de commencer

Dans cette rubrique, il est supposé que vous avez choisi et configuré un fournisseur JMS lors de l'installation de WebSphere Application Server (le fournisseur de messagerie par défaut ou un autre fournisseur, par exemple le fournisseur de messagerie WebSphere MQ). Si ce n'est pas le cas, faites-le maintenant comme décrit dans Choix d'un fournisseur de messagerie.

Pourquoi et quand exécuter cette tâche

Les extensions WSDL pour JMS (Java Message Service) sont identifiées par le préfixe d'espace de nom jms. Par exemple, <jms:binding>.

Les opérations prises en charge sont de type unidirectionnel (envoi pour une messagerie JMS point à point ou publication pour une messagerie JMS publication/abonnement) (envoi et réception pour une messagerie point à point). Selon les cas, les opérations WSDL spécifient donc un message d'entrée seul ou un message d'entrée et un message de sortie.

Les opérations qui décrivent des interfaces de message avec une liaison JMS natif ne possèdent pas de message de défaut. Aucune hypothèse n'est faite quant au schéma du message ou à la sémantique des propriétés de message, si bien qu'il est impossible de faire la distinction entre message de sortie et message de défaut.

Utilisez la procédure suivante et les fragments de code associés pour écrire l'extension WSDL devant permettre à votre service WSIF d'accéder à un service sous-jacent au niveau d'une destination JMS.

Procédure

Exemple 1 : Message texte JMS

Le message texte JMS contient un java.lang.String. Dans cet exemple, le message WSDL contient une seule partie qui représente l'intégralité du corps du message :

<wsdl:definitions ... > 

   <!-- simple or complex types for input and output message -->
   <wsdl:types> ... </wsdl:types>
   
   <wsdl:message name="JmsOperationRequest"> ... </wsdl:message>
   <wsdl:message name="JmsOperationResponse"> ... </wsdl:message>
 
   <wsdl:portType name="JmsPortType">
      <wsdl:operation name="JmsOperation">
         <wsdl:input name="Request" 
                     message="tns:JmsOperationRequest"/>
         <wsdl:output name="Response" 
                      message="tns:JmsOperationResponse"/>
      </wsdl:operation>
   </wsdl:portType>

   <wsdl:binding name="JmsBinding" type="JmsPortType">
      <jms:binding type="TextMessage" />

      <format:typemapping style="Java" encoding="Java">           
         <format:typemap name="xsd:String" formatType="String" />
      </format:typemapping>

      <wsdl:operation name="JmsOperation">
         <wsdl:input message="JmsOperationRequest">
            <jms:input parts="requestMessageBody" />
         </wsdl:input>
         <wsdl:output message="JmsOperationResponse">
            <jms:output parts="responseMessageBody" />
         </wsdl:output>
      </wsdl:operation>
   </wsdl:binding>

   <wsdl:service name="JmsService">
      <wsdl:port name="JmsPort" binding="JmsBinding">
         <jms:address destinationStyle="queue" 
                      jndiConnectionFactoryName="myQCF" 
                      jndiDestinationName="myDestination"/>
      </wsdl:port>
   </wsdl:service>

</wsdl:definitions>

Extension de l'exemple de message JMS précédent, le code WSDL suivant décrit une opération Request-Response dans laquelle des valeurs de propriétés JMS spécifiques sont définies dans le message de demande et extraites du message de réponse.

Les propriétés JMS dans le message de demande sont définies en fonction des valeurs dans le message d'entrée. De la même manière, des propriétés JMS sélectionnées du message de réponse sont copiées dans les valeurs correspondantes du message de sortie. La direction du mappage est déterminée par la spécification de la balise <jms:property> respectivement dans les sections input et output.

<wsdl:definitions ... > 

   <!-- simple or complex types for input and output message -->
   <wsdl:types> ... </wsdl:types>
   
   <wsdl:message name="JmsOperationRequest"> 
      <wsdl:part name="myInt" type="xsd:int"/>
      ...
   </wsdl:message>

   <wsdl:message name="JmsOperationResponse"> 
      <wsdl:part name="myString" type="xsd:String"/>
      ... 
   </wsdl:message>
 
   <wsdl:portType name="JmsPortType">
      <wsdl:operation name="JmsOperation">
         <wsdl:input name="Request" 
                     message="tns:JmsOperationRequest"/>
         <wsdl:output name="Response" 
                      message="tns:JmsOperationResponse"/>
      </wsdl:operation>
   </wsdl:portType>

   <wsdl:binding name="JmsBinding" type="JmsPortType">
      <!-- the JMS message type might be any of the preceding types -->
      <jms:binding type="..." />

      <format:typemapping style="Java" encoding="Java">           
         <format:typemap name="xsd:int" formatType="int" />
         ...
      </format:typemapping>

      <wsdl:operation name="JmsOperation">
         <wsdl:input message="JmsOperationRequest">
            <jms:property message="tns:JmsOperationRequest" parts="myInt" />
            <jms:propertyValue name="myLiteralString" 
                          type="xsd:string" value="Hello World" />
            ...
         </wsdl:input>
         <wsdl:output message="JmsOperationResponse">
            <jms:property message="tns:JmsOperationResponse" parts="myString" />
            ...
         </wsdl:output>
      </wsdl:operation>
   </wsdl:binding>

   <wsdl:service name="JmsService">
      <wsdl:port name="JmsPort" binding="JmsBinding">
         <jms:address destinationStyle="queue" 
                      jndiConnectionFactoryName="myQCF" 
                      jndiDestinationName="myDestination"/>
    </wsdl:port>
   </wsdl:service>

</wsdl:definitions>

Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twsf_prnjwe
Nom du fichier : twsf_prnjwe.html