在.war中找不到EJB

时间:2011-06-23 04:18:30

标签: jpa ejb-3.0

我在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文件,如果它应该在那里我不肯定。

我可能做错了什么?感谢

1 个答案:

答案 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似乎不在修复错误列表中)发行说明)。