[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Problemas com o EP0



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>