在閱讀了這麼久之後,我現在有機會用EJB去弄髒自己的手。我在Ubuntu上使用Glassfish + Eclipse 3.7。Emply EJB和Servlet
我首先創建了一個只返回一個問候消息的EJB。然後,我使用InitialContext創建應用程序客戶端以訪問此EJB。這與預期完全相同。
然後,我創建了一個訪問該EJB的servlet。使用@EJB和InitialContext都無法訪問。
當我使用@EJB時,出現404頁面,其描述如下:「請求的資源()不可用。」
當我使用InitialContent時,會引發ClassNotFoundException。顯然,servlet的類加載器無法訪問EJB類。我試圖將EJB jar文件添加到servlet的lib文件夾中,並收到JNDI名稱已存在的錯誤消息。顯然,Glass Fish嘗試將EJB發佈到Servlet的lib文件夾中。
要實現這一目標的唯一方法是使用servlet發佈EJB。這樣,我就可以獲得servlet和一個獨立的應用程序來訪問該EJB。問題在於我需要總是使用帶有EJB的servlet,這是不可取的,因爲我的客戶端可能不想使用Web前端。
無論如何,我的問題是什麼是適當的方式讓servlet訪問在其類加載器外部使用的EJB,而無需重複發佈EJB。
P.S.這也可能是Eclipse配置和使用這些組件的方式。
非常感謝您的幫助。
顯示一些配置和代碼。 – Bozho 2011-05-03 17:19:53