Configurando uma Fila de Resposta Permanente para Serviços da Web que Usam SOAP Sobre JMS
Ao usar comunicações de serviço da Web bidirecionais usando o protocolo padrão de mercado SOAP sobre JMS, é possível se beneficiar da configuração de uma fila de respostas permanente em um cliente de serviços da WebJava™ API for XML Web Services (JAX-WS) ou Java API for XML-based RPC (JAX-RPC). O uso de uma fila de resposta permanente pode melhorar o desempenho porque essa fila de respostas evita que o cliente tenha de criar uma fila de respostas temporária sempre que um pedido de serviços da Web for chamado.
Sobre Esta Tarefa
- Especifique a propriedade replyToName opcional na URL de terminal JMS.
- Configure a fila de resposta programaticamente.
- Para um cliente de serviços da Web JAX-WS, configure o nome de JNDI da fila de respostas programaticamente no objeto RequestContext do cliente. Configurar o nome JNDI da fila de resposta no objeto RequestContext afeta todos os pedidos subsequentes que são chamados utilizando o objeto RequestContext.
- Para um cliente de serviços da Web JAX-RPC, configure o nome de JNDI da fila de respostas programaticamente no objeto Stub ou Call do cliente. Configurar o nome JNDI da fila de resposta como uma propriedade Call ou Stub afeta todos os pedidos subsequentes que são chamados utilizando esse objeto Stub ou Call.
- Configure a fila de resposta como uma propriedade de sistema JVM (Java virtual machine). Configurar a fila de respostas como uma propriedade de sistema JVM afeta todos os seus clientes de serviços da Web que executam no JMS particular. Se houver vários clientes em execução na mesma JVM que precisem utilizar uma fila de resposta diferente, esta opção não funcionará. Em vez disso, utilize uma das outras duas opções.
Para configurar a fila de resposta permanente utilizando uma dessas opções, somente a configuração do cliente será necessária. Não há nenhuma configuração necessária para o provedor de serviço da Web.
Use as funções administrativas típicas do provedor de sistema de mensagens JMS para criar a fila de respostas permanentes antes de configurar a fila de respostas com o cliente de serviços da Web.
Procedimento
- Especifique a propriedade opcional replyToName na
URL do terminal JMS; por exemplo:
jms:jndi:jms/MyRequestQueue&jndiConnectionFactoryName=jms/MyCF&replyToName=jms/MyReplyQueue
- Configure a fila de resposta programaticamente no cliente. O valor da propriedade é uma Cadeia e representa o nome JNDI da fila de resposta.
- Para clientes de serviços da Web JAX-WS, configure a propriedade com.ibm.wsspi.webservices.Constants.JMS_REPLY_QUEUE_JNDI_NAME no objeto RequestContext JAX-WS do cliente; por exemplo:
((BindingProvider) port).getRequestContext().put (com.ibm.wsspi.webservices.Constants.JMS_REPLY_QUEUE_JNDI_NAME, "jms/MyReplyQueue");
- Para clientes de serviços da Web JAX-RPC, configure a propriedade com.ibm.wsspi.webservices.Constants.JMS_REPLY_QUEUE_JNDI_NAME no objeto Stub ou Call JAX-RPC do cliente; por exemplo:
((javax.xml.rpc.Stub) stub)._setProperty(com.ibm.wsspi.webservices.Constants.JMS_REPLY_QUEUE_JNDI_NAME, "jms/MyReplyQueue");
- Para clientes de serviços da Web JAX-WS, configure a propriedade com.ibm.wsspi.webservices.Constants.JMS_REPLY_QUEUE_JNDI_NAME no objeto RequestContext JAX-WS do cliente; por exemplo:
- Configure o nome de JNDI da fila de resposta como uma propriedade de sistema JVM.
- Para uma chamada de cliente Java, digite o seguinte código em
um prompt de comandos:
java -Dcom.ibm.websphere.webservices.JMSReplyQueueJndiName=jms/MyReplyQueue
- Para uma JVM em execução no servidor de aplicativos, execute as seguintes ações:
Configure uma propriedade de sistema JVM usando o console administrativo para o servidor de aplicativos que executa o aplicativo do cliente de serviço da Web.
Para configurar as propriedades customizadas, efetue logon no console administrativo e navegue até o painel de propriedades customizadas da Java virtual machine.
- Clique em
- Configure a propriedade Nome para: com.ibm.websphere.webservices.JMSReplyQueueJndiName
- Configure a propriedade Valor para: jms/Permanent_Q
- Clique em OK para salvar suas mudanças.
- Clique em Sincronizar mudanças com nós e clique em Salvar.
- Reinicie o servidor da aplicação.
- Para uma chamada de cliente Java, digite o seguinte código em
um prompt de comandos:
Resultados
Seu cliente de serviços da web agora pode receber mensagens SOAP sobre JMS a partir de uma fila de resposta permanente.