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
I have tried several JNDI resource paths:
e.g.
java:global/BookServiceEJB
java:global/BookService
甚至:
java:global/BookShelf-1.0-SNAPSHOT/BookServiceEJB
没有任何东西起作用。
我没有配置任何xml部署文件,只有一个在META-INF中的。
测试正在使用maven surefire:
mvn clean test
非常感谢您的帮助!
注意:将应用程序完全部署到Glassfish服务器上是可行的(使用appclient和@EJB
注入)。