此问题是关于Java EE 6,使用glassfish v3 embedded-all。Java EE 6 - 嵌入式容器EJB测试
我有一个使用的EJBContainer来测试我的无状态EJB单元测试。
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 {
...
}
给出了异常:
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
我尝试了好几种JNDI资源路径:
例如问题是我使用JNDI有抬头的EJB(远程)麻烦
java:global/BookServiceEJB
java:global/BookService
连:
java:global/BookShelf-1.0-SNAPSHOT/BookServiceEJB
等等
空话工作
我没有任何XML部署配置文件,只有persistence.xml
在META-INF。
测试是万无一失的使用maven:
mvn clean test
任何帮助,不胜感激!
注意:全部署到GlassFish服务器的作品(使用appclient和@EJB
注射)
注意:对Glassfish服务器的全面部署工作(使用appclient和@EJB注入) – Dzhu 2010-10-14 23:26:36