Acessar uma Queue remota

Como faço para acessar uma queue que se encontra em outro servidor?

...
	Context context =getInitialContext();
		
			ConnectionFactory factory = (ConnectionFactory) context
					.lookup("ConnectionFactory");	



 public static Context getInitialContext () throws JMSException,NamingException
	    {
	         Properties prop = new Properties();
	         prop.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
	         prop.setProperty("java.naming.factory.url.pkgs", "org.jnp.interfaces");
	         prop.setProperty("java.naming.provider.url", "jnp://10.110.107.45:1099");
	         Context context = new InitialContext(prop);
	    return context;
	    }


Tenho a fila rodando em localhost e tento enviar uma mensagem para fila a partir de um server que esta em outra maquina remota.

Provavelmente você precise de um lookup jndi. Acredito que um EJB remoto também.

sim ja tenho o looku, em getInitialContext(), o meu problema e nesta linha

prop.setProperty(“java.naming.provider.url”, “localhost:1099”);

setando localhoste rodando o codigo acima via metodo main ele funciona, mas como quero executar em um ejb em um servidor remoto
deve setar outro caminho em vez de localhost , ja tentei colocar o ip da maquina tentei com jnp:ip:porta , mas nada deu certo.

Qual app server está utilizando?
Se for o JBoss, existe um arquivo de configuração que você precisa incluir no src.
jboss-ejb-client.properties

endpoint.name=client-endpoint
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
 
remote.connections=default
 
#Endereço do host
remote.connection.default.host=127.0.0.1
remote.connection.default.port = 4447
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
 #Usuário e senha de acesso aplicação ao app server
remote.connection.default.username=testuser
remote.connection.default.password=senha123

Além, dos seguintes jars:

Isto, claro, para a versão 7.1 do JBoss (Brontes).

vixi to com a versao 4.2 , ta punk o negocio aki.

Veja se isto te ajuda.

Entao tentei de varia maneiras mas nao consegui, se houvesse uma maneira de fazer o inverso ja ajudaria , tipo em vez de mandar uma mensagem para uma fila remota eu pudesse ler mensagem de uma fila remota, isso tbm nao consegui :frowning:

Começando do começo:

  1. Dá algum erro?
  2. Seu cliente tem as libs do JBoss ?
  3. Seu JBoss dá acesso remoto?
  4. A máquina cliente tem acesso à máquina onde o JBoss está?

[]'s

Acho que uma solução muito mais limpa seria criar um serviço (ejb) no servidor remoto para receber as requisições e colocá-las na fila (localmente)

Concordo.

Concordo.[/quote]

+1. Mas acho que, se ele não conseguir acessar a JNDI remotamente, não vai mudar grande coisa o problema (de não conseguir acessar o EJB remotamente).

[]'s

Entao acessar ejbs remotos consigo, so nao sei como acessar a fila remota e ler os dados dela.
Gostaria de criar a fila no servidor remoto, e que o meu MessageDrivenBean fosse notificado qdo algo fosse enviado pra fila,
Ja testei as duas aplicacoes no mesmo server e tudo funciona perfeitamente.
Algume tem um exemplo de como acessar uma fila remota?

Meu MDB



@MessageDriven(activationConfig = {
		@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
		@ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/SnsQueue") // Aqui como referencio a fila remota?

A outra dica que vcs deram nao sei se funciona pra mim, pq imagine meu projeto no server remoto enviando uma mensagem para a fila via ejb remoto, onde o metodo remoto esta rodando em localhost por exemplo ou outro servidor remoto qualquer, enquanto a app esta no ar meu ejb remoto envia as mensagens para a fila , mas a app pode ficar indisponivel neste caso axo que pode dar problema, pois o ejb remoto nao sera encontrado e a mensagem nao sera adicionada a fila.

Pessoal obrigado pela ajuda, consegui fazer funcionar atraves deste tutorial
https://community.jboss.org/wiki/HowDoIConfigureAnEJB3MDBToTalkToARemoteQueue

Agradeço a tdos que contribuiram com suas opnioes e possiveis soluções para o problema, aprendi mto neste post.
abraços.