2010-03-29 120 views
8

我正在學習過去幾天的EJB3。我有許多關於EJB,應用程序服務器和EJB部署的問題。如何在服務器上部署EJB?

首先,我創建了一個簡單的helloworld無狀態會話bean,但我不知道如何將其部署到服務器上。它有單一的bean類,bean接口和一個servlet客戶端。我用eclipse來開發這個項目。
我讀過的書都沒有提供關於如何在服務器上放置EJB以及如何訪問這些bean的詳細步驟。

我有JBoss 6服務器,我也有從Sun網站下載的Java EE budle。此Java EE軟件包是否包含Glassfish服務器?還是需要單獨下載?
任何人都可以請我一步一步的詳細介紹如何把我的bean和它的客戶端放在服務器上(JBoss或Java EE)?

爲什麼我們需要在EJB客戶端代碼中包含bean接口類?我的意思是要麼我們需要保持客戶端和bean在同一個包中,或者如果我們將它們保存在單獨的包中,我們需要在客戶端代碼中導入bean接口。我對嗎?

+0

感謝您的幫助! – Shekhar 2010-04-06 13:23:23

回答

8

隨着Java EE 6的,你可以打包你的servlet和一個WAR您的EJB(無論是在JAR打包EJB並把它放在WEB-INF/lib或簡單地把所有類在WEB-INF/classes)。而部署這一戰,將其複製到:

  • $GLASSFISH_HOME/domains/<domain1>/autodeploy GlassFish的V3 *
  • $JBOSS_HOME/server/default/deploy JBoss的6

隨着的Java EE 5,你必須打包代碼在EAR中。

如果您想從Eclipse部署應用程序(使用Eclipse WTP),則必須安裝相應的服務器適配器。對於Eclipse伽利略和GlassFish(目前還JBoss的6 AFAIK沒有適配器),右鍵單擊服務器視圖中,選擇新建>服務器,點擊下載額外的服務器適配器並選擇的GlassFish適配器。完成以定義新的GlassFish v3 Java EE 6服務器並在其上部署您的應用程序(在您的應用程序上右鍵單擊,然後運行方式>在服務器上運行)。對於Eclipse Helios和GlassFish,您可以按照@VonC給出的鏈接(手動安裝)或選擇this answer(通過更新站點安裝)。

+0

我沒有看到當時你(更完整)的答案。 +1 – VonC 2010-04-12 12:29:57

+0

的Java EE 6不允許將消息驅動bean戰爭中。 – 2011-08-09 21:09:53

1

您應該將EJB導出到您的jboss<version>\server/default/deploy文件夾中,然後在servlet的Web項目中添加它的構建路徑。你可以在「在服務器上運行」,然後選擇一個應用服務器,就像你在任何項目中,無需導出WAR但如果你這樣做,你會每次都重新導出WAR您修改代碼
AFAIK有JBoss的6沒有Eclipse插件,但Eclipse提供了一個5.1