Jakarta EE 程式設計/無狀態會話 Bean
外觀
這是一個使用 Eclipse 使用無狀態會話 EJB 的簡短教程。
- 在 Eclipse 中,右鍵單擊專案資源管理器檢視。
- 選擇新建 -> EJB 專案。如果 EJB 專案未出現,請選擇新建 -> 其他,選擇 EJB -> EJB 專案,然後單擊下一步。
- 在“專案名稱”中,鍵入
helloworld-ejb。 - 單擊完成。
- 右鍵單擊專案資源管理器檢視。
- 選擇新建 -> 會話 Bean (EJB 3.x)。如果會話 Bean (EJB 3.x) 未出現,請選擇新建 -> 其他,選擇 EJB -> 會話 Bean (EJB 3.x),然後單擊下一步。
- 在“Java 包”中,鍵入
org.wikibooks.en。 - 在“類名”中,鍵入
MyFirstEJB。保留其他選項不變。 - 單擊完成。
- 在同一包中,建立一個新的介面
MyFirstEJBRemote。 - 在其中新增以下方法簽名
public String sayHello();
- 在介面簽名前新增以下注釋
@Remote
- 開啟
MyFirstEJB類。 - 刪除註釋
@LocalBean。 - 在其中新增以下方法
public String sayHello() {
return "Hello World!";
}
- 右鍵單擊專案。
- 選擇匯出 -> EJB JAR 檔案。如果您沒有找到 EJB JAR 檔案選項,請點選匯出...,選擇 EJB -> EJB JAR 檔案,然後點選下一步>。Web 專案應命名為
helloworld。 - 選擇一個目標位置。
- 單擊完成。
- 轉到您建立 JAR 的資料夾。
您應該看到一個名為 helloworld-ejb.jar 的 JAR 檔案。您可以刪除它。
- 右鍵單擊專案資源管理器檢視。
- 選擇新建 -> 企業應用程式專案。
- 在“專案名稱”中,鍵入
helloworld-ear。 - 單擊下一步。
- 選擇
helloworld-ejb專案。 - 單擊完成。您應該有一個名為
helloworld-ear的新專案。除了其他內容外,它還應包含部署描述符:helloworld-ear/Modules/EJB helloworld-ejb.jar。 - 右鍵單擊匯出 -> EAR 檔案,選擇一個目標位置,然後單擊完成。
- 建立 EAR 檔案的副本,並將副檔名更改為 .zip。
- 瀏覽 ZIP 檔案的內容。
您應該在其中看到名為 helloworld-ejb.jar 的 JAR 檔案。您可以刪除 ZIP 檔案。
- 將您的 EAR 檔案複製/貼上到應用程式伺服器的部署資料夾中。
- 啟動您的應用程式伺服器。
現在您的 EJB 可用。不幸的是,我們還不知道如何使用它。
- 關閉您的應用程式伺服器。
- 重新使用您在此頁面中建立的 WAR 專案。
- 右鍵單擊 Java 資源/src。
- 選擇新建 -> 包。
- 在名稱中,鍵入
org.wikibooks.en。 - 右鍵單擊新包。
- 選擇新建 -> Servlet。
- 在類名中,鍵入
EJBServlet。 - 在類中鍵入以下程式碼
package org.wikibooks.en;
import java.io.IOException;
import java.io.PrintWriter;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class EJBServlet extends HttpServlet {
private static final long serialVersionUID = 5847939167723571084L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = new PrintWriter(response.getOutputStream());
out.println("Calling the EJB...");
try {
InitialContext initialContext = new InitialContext();
MyFirstEJB myFirstEJB = (MyFirstEJB) initialContext
.lookup("java:global/experience4/experience3/MyFirstEJB");
out.println(myFirstEJB.sayHello());
} catch (Exception e) {
out.println(e);
}
out.flush();
out.close();
}
}
- 如果您使用的是除 JBoss 之外的其他應用程式伺服器,則可能需要更改查詢
java:global/experience4/experience3/MyFirstEJB。 - 在 WebContent/WEB-INF 中開啟
web.xml檔案。 - 在第一個標記
<servlet>之前,鍵入以下程式碼
<servlet>
<servlet-name>servlet</servlet-name>
<servlet-class>org.wikibooks.en.EJBServlet</servlet-class>
</servlet>
- 在第一個標記
<servlet-mapping>之前,鍵入以下程式碼
<servlet-mapping>
<servlet-name>servlet</servlet-name>
<url-pattern>/servlet</url-pattern>
</servlet-mapping>
- 右鍵單擊匯出 -> EAR 檔案。
- 對於目標位置,選擇應用程式伺服器的部署資料夾。
- 單擊完成。
- 啟動您的應用程式伺服器。
- 轉到 URL
https://:8080/helloworld/servlet。
您應該看到 呼叫 EJB... 。這意味著您設法呼叫了 Servlet。您還應該看到 Hello World! 。如果您看到一個 Java 異常文字,則表示 Servlet 無法與 EJB 通訊。您可以透過更改程式碼中的文字並重新部署 EAR 來驗證文字是否來自 EJB。
