Ok, até aqui rodando no mesmo servidor funciona sem problemas. Consigo produzir e consumir a fila. Mas agora, como eu faço para que esse mesmo cenario funcione remotamente, com cada aplicação rodando em um servidor? Já tentei diversas formas de configurar seguindo a documentação do JEE6 e outros exemplos que achei por ai, mas nada funciona. Aqui http://docs.oracle.com/javaee/6/tutorial/doc/bncgv.html tem vários exemplos, mas a maioria com aplicações fazendo lookup remoto com InitialContext, não usando CDI. Isso que estou tentando fazer é possível? Isso parece ser uma coisa tão trivial quando falamos de filas que penso estar esquecendo de algum detalhe, ou não sei de algum detalhe. Preciso que duas aplicações web em servidores diferentes troquem informações usando JMS.
É que no jee6 é possível fazer CDI com EJB remoto, com a anotação @EJB, logo acho que é possível fazer com JMS também. Tem alguns parametros que da pra passar na criação do @MessageDriven, mas não consegui achar um que funcione.
se tu tem 2 servidor voce n precisa do acesso remoto…
vc precisa de uma bridge.
tipo em um sistema com um frontend e um backend, cada um em servidore separado (é esse o teu caso?):
cria uma fila para largar as mensagens no servidor de frontend
cria uma fila para buscar as mensagens no servidor do backend
coloca as aplicações em cada uma e faz comunicar com as devidas fila
configura uma bridge para pegar todas as mensagens que cairem na fila do frontend e largar automaticamente na fila do backend
( com isso não é a tua aplicação a responsavel por acessar o outro servidor sim o servidor da aplicação)
se teu mdb estiver corretamente feito, quando a mensagem cair na fila do backend ele automaticamente vai ler ela
tratei como bridge, mas tbm tem as SAFE são implementações parecidas …
Então, dessa maneira que o pdpbom falou funcionou perfeitamente. Acho até que não tem outra maneira de fazer isso entre dois servidores de aplicação, apenas com um cliente standalone. Desse modo fica bem simples a arquitetura, pois a responsabilidade de entrega e recebimento de mensagens fica por conta dos appserver.
Mas fazendo o teste com um cliente standalone não tive sucesso usando o glassfish. Quando executo o código abaixo remotamente, ele trava fazendo o lookup de TopicFactory, e fica eternamente travado, sem dar qualquer mensagem de erro. Mas quando executo o mesmo código na maquina local funciona. Estou fazendo alguns testes com o jboss agora.