Acerca de esta tarea
Deprecated feature: A partir de WebSphere Application
Server 7.0, el protocolo SOAP sobre JMS propiedad de IBM
está en desuso para favorecer el uso del protocolo estándar del sector emergente. Puede utilizar el protocolo SOAP sobre JMS de IBM con JAX-WS (API de Java™ para servicios web XML) o JAX-RPC, no obstante, se le recomienda que se beneficie del estándar del protocolo SOAP sobre JMS.
Esta tarea describe cómo configurar una cola replyTo permanente cuando se utiliza el transporte SOAP sobre JMS de IBM. Para obtener más información acerca del estándar SOAP sobre JMS, consulte la documentación sobre cómo utilizar SOAP sobre JMS para el transporte de servicios web.
depfeat
Cuando utiliza JMS para transportar solicitudes de servicio web, el comportamiento
predeterminado es que el mensaje SOAP se añada a la cola o tema de destino
no de manera transaccional o fuera de la transacción de la aplicación cliente. La inclusión del mensaje SOAP en la cola o tema de destino se realiza fuera de la transacción
para impedir los problemas de sincronización que pueden producirse con las solicitudes de
servicio web bidireccionales. No obstante, puede determinar permitir que las solicitudes unidireccionales se procesen como parte de la transacción. Se puede utilizar la propiedad enableTransactionalOneWay
para garantizar que las solicitudes de servicio web unidireccionales que utilizan el transporte JMS se enviarán
a la cola o tema de destino de manera transaccional.
Cuando la aplicación cliente
invoca la solicitud de servicio web unidireccional, el mensaje de solicitud SOAP
producido se añade a la cola o tema de destino como parte de la transacción
de la aplicación cliente.
Utilice uno de los métodos siguientes
para habilitar la propiedad enableTransactionalOneWay.
- Establezca la propiedad enableTransactionalOneWay mediante programación
en el objeto Stub o Call JAX-RPC cliente.
Si utiliza un Stub estático para invocar la operación de servicio web,
establezca la propiedad enableTransactionalOneWay
en el objeto Stub antes de invocar el método de servicio web. Si utiliza un objeto Call para invocar la operación de servicio web, establezca la propiedad enableTransactionalOneWay en el objeto Call antes de invocar el método invokeOneWay() .
Service service = /* Obtener el servicio deseado */
MyStub stub = service.getPort();
/* Establecer la propiedad enableTransactionalOneWay en Stub */
stub._setProperty(com.ibm.websphere.webservices.Constants.ENABLE_TRAN_ONEWAY, new Boolean(true));
/* Invocar la operación unidireccional */
stub.myOneWayOperation("Parm1");
El valor de la propiedad es Boolean.
- Establezca la propiedad enableTransactionalOneWay como
una propiedad personalizada en el archivo de descriptores de despliegue
ibm-webservicesclient-bnd.xmi utilizando el mandato wsadmin.
Para obtener más información sobre las opciones de la herramienta wsadmin, consulte las opciones de la información de mandatos install, installInteractive, edit,
editInteractive, update y updateInteractive del objeto AdminApp.
Utilice el objeto $AdminApp junto con la opción -WebServicesClientCustomProperty
para establecer el valor de la propiedad en el archivo de enlaces cliente, ibm-webservicesclient-bnd.xmi.
El valor de la propiedad personalizada, enableTransactionalOneWay, es true o false.
- Utilizando
Jacl:
$AdminApp edit MyApplication {-WebServicesClientCustomProperty
{{MyEJBJar.jar MyEJB service/MyServiceRef MyPort enableTransactionalOneWay
true}}}
- En Jython:
AdminApp.edit('MyApplication', ['-WebServicesClientCustomProperty',
[['MyEJBJar.jar', 'MyEJB', 'service/MyServiceRef ', 'MyPort', 'enableTransactionalOneWay',
'true']]])
Qué hacer a continuación
Después de haber habilitado la propiedad
enableTransactionalOneWay,
ejecute la aplicación cliente.