Utilizando Listener de Mensagem de Resposta Assíncrona JMS JAX-WS

O JAX-WS (Java™ API for XML-Based Web Services) inclui um listener de mensagem de resposta assíncrona JMS (Java Message Service), que é utilizado para receber respostas aos pedidos JAX-WS assíncronos que utilizam o transporte JMS. O listener de mensagem de resposta assíncrona JMS é utilizado nos ambientes de aplicativo cliente e servidor de aplicativos.

Antes de Iniciar

O JAX-WS fornece suporte para chamar operações de serviço da Web assincronicamente usando um retorno de chamada ou modelo de pesquisa. Quando o cliente JAX-WS utiliza o transporte JMS para chamar operações assíncronas, as respostas são recebidas pelo listener de mensagem de resposta assíncrona. Para saber como usar o modelo de chamada de cliente assíncrono JAX-WS, leia sobre como chamar serviços da Web JAX-WS assincronicamente.

Sobre Esta Tarefa

O listener de mensagem de resposta assíncrona JMS é utilizado dentro do ambiente do cliente de serviços da Web para receber respostas assíncronas quando o aplicativo cliente está usando o Transporte JMS. O listener exige um connection factory e uma fila para funcionar corretamente. Comece configurando o connection factory e a fila e, em seguida, especifique os nomes JNDI do connection factory e da fila para o listener definindo as propriedades de sistema Java. O ambiente no qual o cliente está sendo executado determina como as propriedades de sistema são definidas.

O listener de mensagem de resposta assíncrona JMS é iniciado automaticamente pelo ambiente de tempo de execução do cliente de serviços da Web quando o cliente chama a primeira operação JAX-WS assíncrona usando o transporte JMS.

O connection factory e a fila configurados com o listener de mensagem de resposta assíncrona são utilizados para todos os pedidos chamados em um determinado processo Java, como para o servidor de aplicativos ou um contêiner de aplicativo cliente. É possível compartilhar o connection factory entre diferentes processos Java. Entretanto, você não pode compartilhar uma fila entre processos Java.

Procedimento

  1. Determine se você deseja que o cliente JAX-WS utilize o mecanismo de transporte JMS.
  2. Para cada processo Java que utilizará o JMS como transporte para pedidos JAX-WS assíncronos, configure o connection factory e a fila utilizados pelo listener de resposta assíncrona JMS para esse processo. Você pode compartilhar um connection factory entre vários processos Java, mas não pode compartilhar uma fila entre processos Java.
  3. Para cada processo Java, configure as propriedades de sistema Java com.ibm.websphere.webservices.jms.AsyncReplyQueueName e com.ibm.websphere.webservices.jms.AsyncReplyCFName para especificar os nomes da JNDI da fila e do connection factory que são usados pelo listener de mensagem de resposta assíncrona JMS para esse processo.

    Se o nome JNDI da fila for o valor padrão, jms/DefaultAsyncReplyQueue, você não precisará definir a propriedade AsyncReplyQueueName. Da mesma forma, se o nome JNDI do connection factory for o valor padrão, jms/DefaultAsyncReplyCF, não será necessário definir a propriedade AsyncReplyCFName também.

    Se o cliente for executado no ambiente do servidor de aplicativos, defina as propriedades como sendo do sistema do servidor de aplicativos utilizando o console administrativo ou o comando wsadmin.

    Se seu cliente for executado no ambiente do contêiner do aplicativo cliente, você deverá configurar as propriedades usando a opção –CCD na linha de comandos launchClient.

Resultados

O seu cliente de serviços da Web JAX-WS é configurado para usar o listener de resposta assíncrona JMS para receber mensagens de respostas assíncronas quando usar o transporte JMS.

Exemplo

Suponha que você tem um cliente de serviços da Web JAX-WS que executa no ambiente do contêiner do cliente de aplicativos e usa o transporte JMS para se comunicar com o servidor. Suponha também que o cliente chame operações JAX-WS assíncronas. Você pode criar um connection factory com o nome JNDI, jms/MyAppCF, e uma fila com o nome JNDI, jms/MyAppAsyncReplyQueue. Ao chamar o cliente com o comando launchClient, especifique os nomes da JNDI da fila e da connection factory conforme ilustrado no comando a seguir:
launchClient MyAppClient.ear \
   -CCDcom.ibm.websphere.webservices.jms.AsyncReplyQueueName=jms/MyAppReplyQueue \
   -CCDcom.ibm.websphere.webservices.jms.AsyncReplyCFName=jms/MyAppCF \
   <application arguments>

Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jmsasyncresplistener
Nome do arquivo: twbs_jmsasyncresplistener.html