Problema ao realizar teste de EJB

1 resposta
Lxu

Saudações pessoal,

Estou iniciando no desenvolvimento com o java ee 6.
Criei um projeto simples que possui um servlet que chama um ejb. Ao rodar e acessar pelo browser a aplicação roda normalmente, e é imprimido o esperado com a resposta do servlet e de uma string retornada pelo ejb.

O meu problema é ao tentar gerar e executar um teste unitário com o JUnit sobre o ejb. Criei um teste unitário pelo tools (estou usando o netbeans 7.01), create JUnit test, 4.x. Ele cria a classe de testes, com o método teste abaixo:

@Test
    public void testHello() throws Exception {
        System.out.println("hello");
        EJBContainer container = javax.ejb.embeddable.EJBContainer.createEJBContainer();
        NewSessionBean instance = (NewSessionBean)container.getContext().lookup("java:global/classes/NewSessionBean");
        String expResult = "Hello World";
        String result = instance.hello();
        assertEquals(expResult, result);
        container.close();
    }

Ao rodar o teste ele gera uma exceção (meio longa), o principal me pareceu ser isso:

WARNING: IOP00100006: Class com.sun.ejb.containers.JavaGlobalJndiNamingObjectProxy is not Serializable
SEVERE: Exception while invoking class org.glassfish.ejb.startup.EjbDeployer load method
java.lang.RuntimeException: EJB Container initialization error
Caused by: java.lang.RuntimeException: Error while binding JNDI name java:global/classes/NewSessionBean for EJB : NewSessionBean
Caused by: javax.naming.CommunicationException: java.rmi.MarshalException: CORBA BAD_PARAM [telefone removido] Maybe; nested exception is:
java.io.NotSerializableException: WARNING: IOP00100006: Class com.sun.ejb.containers.JavaGlobalJndiNamingObjectProxy is not Serializable
SEVERE: Exception while loading the app : EJB Container initialization error
java.lang.RuntimeException: Error while binding JNDI name java:global/classes/NewSessionBean for EJB : NewSessionBean
Caused by: javax.naming.CommunicationException: java.rmi.MarshalException: CORBA BAD_PARAM [telefone removido] Maybe; nested exception is:
java.io.NotSerializableException: WARNING: IOP00100006: Class com.sun.ejb.containers.JavaGlobalJndiNamingObjectProxy is not Serializable

Ela parece reclamar que um dos objetos não é serializável, mas não compreendo todo o processo por de tras das chamadas para entender a razão de ter este erro. Mais de um tutorial já vi com o passo a passo que utilizei sem gerar erros )=.

Provavelmente eu deva estar cometendo algum erro muito simples, alguém poderia me dar uma luz?

Agradeço.

1 Resposta

Lxu

Consegui solucionar.
Cheguei a realizar o mesmo processo em outro computador, e tinha conseguido finalizar sem erros. Reinstalei todos as tecnologias java do meu computador e obtive sucesso.
Não sei qual foi o problema =)

Criado 29 de outubro de 2011
Ultima resposta 3 de nov. de 2011
Respostas 1
Participantes 1