【发布时间】:2011-04-20 03:45:18
【问题描述】:
我有一个 EJB3 项目要部署在 JBoss 5.1.0 GA 上。我将无状态 EJB 注入到其他无状态 bean 和 Servlet 中。
我正在使用不带任何参数的 @EJB 注释来注入 EJB bean,(我有一个测试项目只是为了模拟注入,它有效)。
当我尝试部署时,出现以下错误。
"Caused by: java.lang.RuntimeException: java.lang.IllegalStateException: Resolution should not happen via injection container"
我已搜索但似乎无法找到/查明错误原因。
更新:1
EJB jar 和 WAR 都部署在同一个 EAR 中。我正在使用 JEE5 架构 http://code.google.com/p/javaee5-maven-archetype/ 创建主项目和测试。 archtype 生成的默认代码有效,@EJB 注入中无需指定 JNDI 名称。
更新:2 完整的部署堆栈跟踪,http://pastebin.com/CknXie13
【问题讨论】:
-
The default code generated by the archtype works, and there is no need to specify the JNDI name in the @EJB那你加了什么?你能发布完整的堆栈跟踪吗? -
我有一个抽象 DAO,我在其中使用
@PersistenceContext注入持久性上下文。基本 DAO 由所有 DAO 实现扩展。我可以在非托管 bean 中注入@PersistenceContext感兴趣吗? -
Of interest can I inject @PersistenceContext in an unmanaged bean?不,由于类是非托管的,因此无法进行注入。 -
请不要说我仍然认为堆栈跟踪和有关“不工作”部分的更多详细信息会对读者有所帮助。
标签: java jakarta-ee ejb-3.0 jboss5.x