Pourquoi et quand exécuter cette tâche
Fonction obsolète: A partir de WebSphere Application Server 7.0,
le protocole SOAP sur JMS de propriété IBM est déprécié ; on lui préférera le protocole standard industriel émergeant. Vous pouvez toujours utiliser le protocole SOAP sur JMS de propriété IBM avec vos services Web JAX-WS (Java™ API
for XML Web Services) ou JAX-RPC, toutefois, nous vous encourageons à bénéficier des avantages de la norme du protocole SOAP sur JMS.
Cette tâche décrit la configuration d'une file d'attente replyTo permanente lors de l'utilisation d'un transport SOAP sur JMS de propriété IBM. Pour plus d'informations sur la norme SOAP sur JMS, voir la documentation de l'utilisation de SOAP sur JMS pour le transport de services web services.
depfeat
Lors de l'utilisation de JMS avec des demandes de services Web de transport, le message SOAP doit, par défaut, être ajouté à la file d'attente ou à la rubrique de destination de façon non transactionnelle ou en dehors de la transaction de l'application client. L'ajout du message SOAP à la file d'attente ou à la rubrique de destination s'effectue en dehors de la transaction afin d'éviter tout problème de synchronisation susceptible de se produire avec des demandes de service Web bidirectionnelle. Cependant, vous pouvez choisir d'autoriser le traitement des demandes unidirectionnelles dans le cadre de la transaction. La propriété enableTransactionalOneWay peut être utilisée pour garantir que les demandes de service Web à sens unique utilisant le transport JMS seront envoyées à la file d'attente ou à la rubrique de destination au niveau des transactions.
Lorsque l'application client appelle la demande de service Web à sens unique, le message de la demande SOAP résultant s'ajoute à la file d'attente ou à la rubrique de destination dans le cadre de la transaction de l'application client.
Utilisez l'une des méthodes suivantes pour activer la propriété enableTransactionalOneWay.
- Définissez la propriété enableTransactionalOneWay à l'aide d'un programme sur l'objet Stub ou Call JAX-RPC du client.
Lorsque vous utilisez un module de remplacement statique est utilisé pour appeler l'opération de service Web, définissez la propriété enableTransactionalOneWay sur l'objet Stub avant d'appeler la méthode de service Web. En cas d'utilisation d'un objet Appel pour appeler l'opération de service Web, définissez la propriété enableTransactionalOneWay sur l'objet Appel avant d'appeler la méthode invokeOneWay().
Service service = /* Obtenez le service désiré */
MyStub stub = service.getPort();
/* Définissez la propriété enableTransactionalOneWay sur Stub */
stub._setProperty(com.ibm.websphere.webservices.Constants.ENABLE_TRAN_ONEWAY, new Boolean(true));
/* Appelez l'opération à sens unique */
stub.myOneWayOperation("Parm1");
La valeur de la propriété est Booléen.
- Définissez la propriété enableTransactionalOneWay comme propriété personnalisée dans le fichier de descripteur de déploiement ibm-webservicesclient-bnd.xmi à l'aide de la commande wsadmin.
Pour plus d'informations sur les options de l'outil wsadmin, voir Options des commandes install, installInteractive, edit, editInteractive, update et updateInteractive de l'objet AdminApp.
Utilisez l'objet $AdminApp avec l'option -WebServicesClientCustomProperty pour définir la valeur de la propriété dans le fichier de liaison client, ibm-webservicesclient-bnd.xmi.
La valeur de la propriété personnalisée enableTransactionalOneWay est true ou false.
- Langage Jacl :
$AdminApp edit MyApplication {-WebServicesClientCustomProperty
{{MyEJBJar.jar MyEJB service/MyServiceRef MyPort enableTransactionalOneWay
true}}}
- En langage
Jython :
AdminApp.edit('MyApplication', ['-WebServicesClientCustomProperty',
[['MyEJBJar.jar', 'MyEJB', 'service/MyServiceRef ', 'MyPort', 'enableTransactionalOneWay',
'true']]])
Que faire ensuite
Une fois la propriété
enableTransactionalOneWay activée, exécutez l'application.