Junit + EJB + Glassfish = Exception while preparing the app : Invalid resource

3 respostas
Lxu

Olá,

Estou tentando rodar um teste unitário para testar um ejb. Ao executar a seguinte linha de código o teste termina com uma exceção:

EJBContainer container = javax.ejb.embeddable.EJBContainer.createEJBContainer();

Exceção:
java.lang.RuntimeException: Invalid resource : jdbc/mine__pm
Exception while preparing the app : Invalid resource : jdbc/mine__pm

O ejb possui um EntityManager injetado que se refere a minha unidade de persistencia. Esta se refere a um Data Source pelo nome jndi jdbc/mine. Inicialmente eu havia criado o data source pelo netbeans para o meu banco de dados e era possível visualiza-lo no glassfish. Depois de procurar um pouco resolvi fazer a mesma coisa por um arquivo glassfish-resource.xml . O erro continua.

É possível visualizar o data source no servidor glassfish rodando, além disso, eu consigo rodar a aplicação e utilizando o mesmo ejb salvar uma entidade em banco. logo, meu problema é apenas no ambiente de teste.

Estou usando como ambiente o netbeans 7 + glassfish (javadb,eclipselink) + junit 4.
Alguém sabe o que há de errado?

3 Respostas

gbvbahia01

Tipo quando eu fiz tive alguns problemas, mas resolvi parte deles neste link:

http://netbeans.org/kb/docs/javaee/javaee-entapp-junit.html

Veja que quando vc injeta um bean dentro de outro da uns probleminhas, mas a injeção do entitymanager deu certo no meu teste…
Espero que o tutorial te ajude…

Lxu

Só pude dar uma olhada melhor agora.

Tentei seguir o tutorial desse link que você passou, mas obtive o mesmo erro. Baixei o projeto inclusive e tentei rodar, e continua dando o mesmo erro.

O detalhe é que eu estava executando o projeto direto pelo arquivo de teste (run file) e então ele acusa erro de recurso jndi como falei antes. Ao rodar pelo projeto->Test ele acusa não existir nenhum ejb “Invalid ejb jar [t.jar]: it contains zero ejb”.

Estou achando que possa ser algum problema do ambiente (? Netbeans 7.01). Alguma dica?

gbvbahia01

Eu fiz uns testes em um projeto pessoal, seguindo o tutorial que te passei, da realmente uns problemas na JNDI que no teste deve ser diferente, você pode baixar o projeto que fiz do svn do goolge:
https://meu-controle-financeiro.googlecode.com/svn/trunk/Money

Netbeans 7, GlassFish 3
Os testes estão funcionando belezinha aqui, baixa esse projeto e da uma olhada.

Se tiver dúvida de como instalar o svn no netbeans vai aqui:
http://netbeans.org/kb/docs/ide/subversion.html

Criado 21 de novembro de 2011
Ultima resposta 29 de nov. de 2011
Respostas 3
Participantes 2