Sobre Esta Tarefa
Recurso Reprovado: Começando com o WebSphere Application Server 7.0, o protocolo proprietário da IBM SOAP sobre JMS é descontinuado em favor do protocolo padrão de mercado emergente. É possível usar o protocolo proprietário da IBM SOAP sobre JMS com os seus serviços da Web Java™ API for XML Web Services (JAX-WS) ou JAX-RPC, porém, você é encorajado a tirar vantagem do padrão do protocolo SOAP sobre JMS.
Esta tarefa descreve a configuração de uma
fila replyTo permanente ao usar o transporte SOAP sobre JMS da propriedade
IBM. Para aprender mais sobre o padrão SOAP sobre JMS, consulte o uso do SOAP sobre JMS para transportar documentação dos serviços da Web.
depfeat
Ao usar o JMS para transportar pedidos de serviço da Web, o comportamento padrão é para a mensagem SOAP ser incluída na fila de destino ou tópico de maneira não transacional ou fora da transação do aplicativo cliente. A inclusão da mensagem SOAP na fila de destino ou tópico é feita fora da transação para evitar problemas de sincronização que podem ocorrer com pedidos de serviço da Web bidirecionais. Entretanto, é possível permitir
que pedidos unidirecionais sejam processados como parte da transação. A propriedade enableTransactionalOneWay pode ser usada para garantir que os pedidos de serviço da Web JAX-RPC unidirecionais que usam o transporte JMS serão enviados para a fila de destino ou tópico de forma transacional.
Quando o aplicativo cliente chama o pedido de serviço da Web unidirecional, a mensagem do pedido SOAP resultante é incluída na fila ou tópico de destino como parte da transação do aplicativo cliente.
Utilize uma das seguintes maneiras
para ativar a propriedade enableTransactionalOneWay.
- Configure a propriedade enableTransactionalOneWay programaticamente
no objeto Stub ou Call JAX-RPC do cliente.
Ao usar um Stub estático para chamar a operação de serviço da Web, configure a propriedade enableTransactionalOneWay no objeto Stub antes de chamar o método de serviço da Web. Ao usar um objeto Chamada para chamar a operação de serviço da Web, configure a propriedade enableTransactionalOneWay no objeto Chamada antes de chamar o método invokeOneWay().
Service service = /* Obter o serviço desejado */
MyStub stub = service.getPort();
/* Configurar a propriedade enableTransactionalOneWay em Stub */
stub._setProperty(com.ibm.websphere.webservices.Constants.ENABLE_TRAN_ONEWAY, new Boolean(true));
/* Chamar a operação unidirecional */
stub.myOneWayOperation("Parm1");
O valor da propriedade é Booleano.
- Configure a propriedade enableTransactionalOneWay como
uma propriedade customizada no arquivo de descritor de implementação ibm-webservicesclient-bnd.xmi
utilizando o comando wsadmin.
Para obter informações adicionais sobre as opções da ferramenta wsadmin, consulte as opções
para os comandos AdminApp object install, installInteractive, edit,
editInteractive, update e updateInteractive.
Utilize
o objeto $AdminApp juntamente com a opção -WebServicesClientCustomProperty
para configurar o valor da propriedade dentro do arquivo de ligação do cliente, ibm-webservicesclient-bnd.xmi.
O valor da propriedade customizada, enableTransactionalOneWay,
é true ou false.
- Utilizando
Jacl:
$AdminApp edit MyApplication {-WebServicesClientCustomProperty
{{MyEJBJar.jar MyEJB service/MyServiceRef MyPort enableTransactionalOneWay
true}}}
- Utilizando Jython:
AdminApp.edit('MyApplication', ['-WebServicesClientCustomProperty',
[['MyEJBJar.jar', 'MyEJB', 'service/MyServiceRef ', 'MyPort', 'enableTransactionalOneWay',
'true']]])
O que Fazer Depois
Depois de ter ativado a propriedade
enableTransactionalOneWay,
execute o aplicativo cliente.