[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico]
[Índice de assunto]
Problemas com o EP0
- Subject: Problemas com o EP0
- From: Emílio de Camargo Francesquini <emilio@xxxxxxxxxx>
- Date: Sat, 27 Sep 2003 20:55:55 -0300
Olá
Já estou há um bom tempo tentando implementar o exemplo bobo de session bean
sem estado dado em aula, porém nem isto estou conseguindo.
Para quem não lembra é o exemplo do Quoter.
Criei, conforme a receita, o Quoter, o QuoterBean e o QuoterHome. Criei o
descritor de implantação e coloquei tudo no jar. A sua estrutura é a que segue:
meta-inf
ejb-jar.xml
sma
exemplos
Quoter
QuoterBean
QuoterHome
O conteudo do xml é o que segue:
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar>
<enterprise-beans>
<session>
<display-name>Meu Quoter</display-name>
<ejb-name>Quoter</ejb-name>
<home>sma.exemplos.QuoterHome</home>
<remote>sma.exemplos.Quoter</remote>
<ejb-class>sma.exemplos.QuoterBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
Peguei esse jar e coloquei no diretório server/default/deploy. No console do
JBoss aparece:
20:33:45,028 INFO [MainDeployer] Starting deployment of package: file:/C:/jboss
-3.2.2RC4/build/output/jboss-3.2.2RC4/server/default/deploy/quoter.jar
20:33:45,058 INFO [MainDeployer] Deployed package: file:/C:/jboss-3.2.2RC4/buil
d/output/jboss-3.2.2RC4/server/default/deploy/quoter.jar
Meu cliente é exatamente igual o que foi visto em aula:
Context ctx = new InitialContext();
QuoterHome rHome = (QuoterHome)PortableRemoteObject.narrow(ctx.lookup
("Quoter"), QuoterHome.class);
Quoter quoter = rHome.create();
...
Depois de tomar um vareio da configuração do JNDI consegui finalmente rodar o
cliente, mas para minha surpresa o Quoter não estava registrado no serviço de
nomes. Veja a pilha e o erro:
javax.naming.NameNotFoundException: Quoter not bound
at org.jnp.server.NamingServer.getBinding(NamingServer.java:495)
at org.jnp.server.NamingServer.getBinding(NamingServer.java:503)
at org.jnp.server.NamingServer.getObject(NamingServer.java:509)
at org.jnp.server.NamingServer.lookup(NamingServer.java:282)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
at sun.rmi.transport.Transport$1.run(Transport.java:148)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
at sun.rmi.transport.tcp.TCPTransport.handleMessages
(TCPTransport.java:460)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run
(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:536)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer
(StreamRemoteCall.java:247)
at sun.rmi.transport.StreamRemoteCall.executeCall
(StreamRemoteCall.java:223)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:133)
at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:528)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:507)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
at sma.exemplos.QuoterClient.main(QuoterClient.java:17)
Exception in thread "main"
Eu tenho que fazer, de alguma maneira, um registro explícito do meu bean?
Se não, onde que eu posso estar errando?
[ ]'s
Emílio de Camargo Francesquini <emilio@ime.usp.br>