Estou iniciando o desenvolvimento de uma aplicação que utilizará EJB, vale ressaltar que não tenho experiência nesta tecnologia. Quando rodo a aplicação em minha máquina (localhost) no JBoss 4.2.2 a aplicação funciona normalmente, mas está dando um erro quando faço deploy na maquina ao lado para tentar acessar o serviço remotamente. Segue erro abaixo:
Ola, pelo que entendi no relatório acima foi que ele não conseguiu localizar ou estabelecer uma conexão com o servidor onde se encontra a aplicação. Verifica se o IP e a porta estão configuradas corretamente, e se o servidor está permitindo a comunicação nesses endereços no JBoss.
J
joaosouza
Olá RodyBr blz,
Obrigado pela dica…
Consegui resolver o problema iniciando o JBoss assim:
run-b0.0.0.0
Falow, e obrigado a todos.
M
Mr_Arthur
Ressuscitado o tópico :)~.
Poxa, o problema não foi solucionado para mim.
Executei o JBOSS com o comando “./run.sh -b 0.0.0.0”.
Quando executo localmente passando o meu ip para o JNDI, ele funciona tranquilo (antes sem o comando citado acima não funcionava).
Agora quando executo em outra maquina na rede, não chego ao resultado esperado.
javax.naming.CommunicationException [Root exception is java.rmi.UnknownHostException: Unknown host: nomedocomputador; nested
exception is:
java.net.UnknownHostException: nomedocomputador]
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:839)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:686)
at javax.naming.InitialContext.lookup(Unknown Source)
at br.com.arthur.desktop.session.ExecutaChamadaEJBSessionMain.main(ExecutaChamadaEJBSessionMain.java:13)
Caused by: java.rmi.UnknownHostException: Unknown host: nomedocomputador; nested exception is:
java.net.UnknownHostException: nomedocomputador
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:726)
... 3 more
Caused by: java.net.UnknownHostException: nomedocomputador
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(Unknown Source)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(Unknown Source)
... 9 more
alguém ajuda, alguém ajuda?
T
Tchello
To achando que eh algum problema nas properties do seu lookup, posta ai o codigo de lookup pra gente dar uma olhada.
M
Mr_Arthur
Estou no trabalho e o código está em casa.
Quando chegar em casa faço isso logo.
public class ExecutaChamadaEJBSessionMain {
public static void main(String[] args) {
try {
InitialContext context = new InitialContext();
EJBSessionRemote ejbSessionRemote = (EJBSessionRemote) context.lookup("EstudosEJB_EAR/EJBSessionRemoteBean/remote");
System.out.println(ejbSessionRemote.executaMensagem());
} catch (NamingException e) {
e.printStackTrace();
}
}
}
EJB:
@Stateless
public class EJBSessionRemoteBean implements EJBSessionRemote {
@Override
public String executaMensagem() {
return "Sou a mensagem que o EJB retorna.";
}
}
O meu cliente é um jar.
Com esse jar, eu executo minha requisição para o EJB localmente sem problemas.
Agora não consigo executar em uma máquina remota ao servidor.
Quando executava o jboss apenas pelo “./run.sh”, só reconhecia quando executava na minha própria maquina com o jndi apontando para localhost ou 127.0.0.1.
Com o comando “./run -b 0.0.0.0” consegui executar localmente passando para o jndi o meu ip, porém remoto não funcionou.
javax.naming.CommunicationException [Root exception is java.rmi.UnknownHostException: Unknown host: nomedocomputador; nested
exception is:
java.net.UnknownHostException: nomedocomputador]
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:839)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:686)
at javax.naming.InitialContext.lookup(Unknown Source)
at br.com.arthur.desktop.session.ExecutaChamadaEJBSessionMain.main(ExecutaChamadaEJBSessionMain.java:13)
Caused by: java.rmi.UnknownHostException: Unknown host: nomedocomputador; nested exception is:
java.net.UnknownHostException: nomedocomputador
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:726)
... 3 more
Caused by: java.net.UnknownHostException: nomedocomputador
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(Unknown Source)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(Unknown Source)
... 9 more
Galera, consegui! Ahhh finalmente :D~ só aligria.
Seguinte… que tiver passando por esse mesmo erro basta abrir o arquivo “hosts” do seu SO e mapear o host desconhecido.
ipdohost nomedohost
Exemplo:
172.18.17.2 nomedocomputador
Nuss, após isso ví o quão fácil o EJB torna para você essa comunicação remota.
uou, muito simples!