此問題是關於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