我在Eclipse中创建了一个Dynamic Web Project。我有2个豆子,1个@Entity和另外一个@Stateless。我已经使用Tomcat 6将战争部署到Geronimo 2.2.1并发出警告:
Unresolved ejb reference "com.myconnection.servlet.AddServlet/srvc" in bean
"GeronimoEnc". Will attempt resolution again at runtime.
我在.jsp上有一个表单,其中包含对servlet(AddServlet)的操作。 servlet试图引用我的@Stateless bean(通过接口)。但是,一旦我在表单上按提交转到servlet,我就会收到此错误:
java.lang.InstantiationException: Some objects to be injected were not found in jndi:
[javax.naming.NameNotFoundException: No EJB found for reference "com.
我在src / META-INF中也有我的persistence.xml文件,如果它应该在那里我不肯定。
我可能做错了什么?感谢
答案 0 :(得分:0)
使用EJB部署WAR文件的支持已在Geronimo 3.0中修复(但可能不可用;请参阅以下文本),bug report 5117。按照这个报告,2.2.1中的依赖注入可能会失败。
有one report on the mailing list,表明Geronimo 3.0 M1可能用于验证依赖注入是否适用于Web应用程序中部署的EJB;但是,这反对针对同一主题的失败提出的查询。再现邮件的重要内容:
卢卡斯:
Geronimo无法注入@EJB 进入一个servlet。 SLSB和我的 serlvet包装在战争中。 ...... 看着我知道的发行说明 EJB 3.1仅受支持 部分即可。我认为这部分 尚未实施的 在war包中部署EJB?
伊万:
嗯,IIRC, EJB注入应该 在M1版本中工作,尽管如此 在EJB 3.1中有一些错误 整合。我建议使用 最新的中继代码(只是更新 一些代码试图解决 地址绑定问题在建筑物上 机器,希望快照构建 可以在下一轮产生), 因为我们得到了更好的TCK结果 与M1释放相比。 JCDI 相关的包装绝对是 包含在最新的主干版本中。
如上所述,3.0 M1将是目前尝试发布的版本,但肯定有可能缺少此功能(假设错误5117似乎不在修复错误列表中)发行说明)。