Cette questiong concerne Java EE 6, en utilisant glassfish v3 embedded-all.Java EE 6 - EJB conteneurs embarqués tests
J'ai un test unitaire qui utilise EJBContainer pour tester mon EJB sans état. Le problème est que je ne parviens pas à regarder l'EJB (à distance) en utilisant JNDI:
setup() {
ctx = EJBContainer.createEJBContainer().getContext();
}
...
test() {
BookService bookService = (BookService)ctx.lookup("java:global/BookServiceEJB!com.something.service.BookService");
...
}
@Stateless
public class BookServiceEJB implements BookService {
...
}
@Remote
public interface BookService {
...
}
donne l'exception:
javax.naming.NamingException: Lookup failed for 'java:global/BookServiceEJB!com.something.service.BookService' in SerialContext [Root exception is javax.naming.NameNotFoundException: BookServiceEJB!com.something.service.BookService not found]
...
caused by: javax.naming.NameNotFoundException: BookServiceEJB!com.something.service.BookService not found
J'ai essayé plusieurs chemins de ressources JNDI:
par exemple
java:global/BookServiceEJB
java:global/BookService
même:
java:global/BookShelf-1.0-SNAPSHOT/BookServiceEJB
etc ...
nothings fonctionne
Je n'ont pas de fichiers xml déploiement configurés, seulement persistence.xml
dans META-INF.
Le test utilise Maven Surefire:
mvn clean test
Toute aide est grandement appréciée!
Remarque: deploy complet GlassFish serveur fonctionne (en utilisant appclient et @EJB
injection)
Remarque: un déploiement complet sur le serveur Glassfish fonctionne (en utilisant appclient et @EJB injection) – Dzhu