我有一個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 archtype,http://code.google.com/p/javaee5-maven-archetype/來創建主項目和測試。由archtype生成的默認代碼有效,並且不需要在@EJB注入中指定JNDI名稱。
更新:2 全面部署堆棧跟蹤,http://pastebin.com/CknXie13
'由archtype生成的默認代碼有效,並且不需要在@ EJB'中指定JNDI名稱然後添加了什麼?你能發佈完整的堆棧跟蹤嗎? – 2010-10-02 23:20:57
我有一個抽象的DAO,我使用@ @ PersistenceContext注入了持久化上下文。基本DAO由所有DAO實現擴展。感興趣的是我可以在非託管bean中注入「@ PersistenceContext」嗎? – n002213f 2010-10-03 18:07:13
'感興趣的我可以在非託管bean中注入@PersistenceContext嗎?'不,注入不能發生,因爲類是非託管的。 – 2010-10-05 06:05:50