我正在學習J2EE和EJB,並且遇到了一個奇怪的問題。這是我的項目設置:在(引用)Web項目中找不到引用EJB項目的類
我使用的是Glassfish 3.1和Eclipse 3.7。我在Eclipse兩個項目:
- 一個EJB 3.0兼容的項目,
myEjbProject
- 一個動態Web項目,
myWebProject
我從myEjbProject
注入一個EJB會話bean mySessionBeanPackage.mySessionBean
成servlet myServletPackage.myServlet
在myWebProject
中,然後(在servlet中)調用會話bean中定義的簡單方法。
我提供了myWebProject
參考myEjbProject
(使用屬性 - >項目引用對話框)。但是,出於某種原因,服務器是無法找到會話bean。我得到的確切錯誤是:
SEVERE:未找到類[LmySessionBeanPackage/mySessionBean]。加載時出錯[類myServletPackage.myServlet]
注意都 EJB項目和Web項目已發佈到服務器,我已經反覆檢查爲bean生成的類文件,實際上,存在於服務器上(所以我想不出爲什麼服務器無法找到它們)。
誰能告訴我我做錯了什麼?
我也試過
加入
myEjbProject
類文件夾明確到Java構建路徑 - 的myWebProject
>庫列表。這是除了項目參考之外(儘管我認爲首先添加項目參考應該是足夠的)。無論如何,它沒有區別(和以前一樣的錯誤信息)。使用Export - > EJB Jar File選項(我不想寫入Ant腳本)創建一個來自
myEjbProject
的JAR文件。然後,我將這個JAR放入了myWebProject
的Java Build Path - > Libraries部分。這種方法也不能解決問題(與以前相同的錯誤信息)。修改所述會話bean具有
- 沒有界面
- 本地接口
- 遠程接口
和相應地修改注射。例如。,對於只有一個本地接口的bean,我用:
@EJB mySessionBeanPackage.mySessionBeanLocal myBean
這種做法並沒有解決問題,或者(同樣的錯誤消息之前)。
完全廢除
myEjbProject
,並將會話bean添加到myWebProject
作爲myServletPackage.mySessionBean
(與servlet的包相同)。在這種情況下,我可以使用@EJB mySessionBeanPackage.mySessionBean myBean
與
myEjbProject
廢除乾脆加入會話beanmyWebProject
爲mySessionBeanPackage.mySessionBean
(新包裝)成功注入會話bean到servlet。在這種情況下,我能成功注入會話bean到使用@EJB mySessionBeanPackage.mySessionBean myBean
第2號爲我做了詭計。謝謝你,謝謝你,謝謝你! :) 我還沒有創建EAR項目,因爲我認爲我會開始簡單。最後一行,是的,我已經有了。乾杯。 –
優秀! #2爲我挽救了更多的頭髮。謝謝! –