作为openejb文档decalres
牢不可破的规则。当事情不起作用时,一遍又一遍地阅读这些内容。
我在嵌入模式下使用openejb,DI工作正常,但我想在pojo中进行查找以使用标准jndi查找作为ctx.lookup来获取对我的数据源的引用(“java:comp / env / DS“)我试图通过xml和@Resource在无状态ejb中声明资源,以测试是否填充了env子上下文但我不知道为什么从未创建env子上下文... plz help
答案 0 :(得分:5)
当我在测试中使用OpenEJB时,我遇到了类似的问题。如果使用OpenEJB进行嵌入式测试,您应该寻找java:openejb / not java:comp / env
通过这个小片段,您可以列出OpenEJB注册的内容
NamingEnumeration<Binding> list = initialContext.listBindings("java:openejb/");
while (list.hasMore()) {
Binding item = list.next();
System.out.println(item.getClassName() +" :: " + "java:openejb/" + item.getName());
}
如果你想获得在“java:openejb / PersistenceUnit /”下注册的所有内容的数据源列表。最有可能你会发现“java:openejb / PersistenceUnit / [name-of-persistence-unit] [hashcode]” - 你以后可以在测试中使用它。
希望有所帮助 --Jakub