跳轉到內容

Jakarta EE 程式設計/無狀態會話 Bean

25% developed
來自華夏公益教科書,開放的書籍,為開放的世界

這是一個使用 Eclipse 使用無狀態會話 EJB 的簡短教程。

  1. 在 Eclipse 中,右鍵單擊專案資源管理器檢視。
  2. 選擇新建 -> EJB 專案。如果 EJB 專案未出現,請選擇新建 -> 其他,選擇 EJB -> EJB 專案,然後單擊下一步。
  3. 在“專案名稱”中,鍵入 helloworld-ejb
  4. 單擊完成。
  5. 右鍵單擊專案資源管理器檢視。
  6. 選擇新建 -> 會話 Bean (EJB 3.x)。如果會話 Bean (EJB 3.x) 未出現,請選擇新建 -> 其他,選擇 EJB -> 會話 Bean (EJB 3.x),然後單擊下一步。
  7. 在“Java 包”中,鍵入 org.wikibooks.en
  8. 在“類名”中,鍵入 MyFirstEJB 。保留其他選項不變。
  9. 單擊完成。
  10. 在同一包中,建立一個新的介面 MyFirstEJBRemote
  11. 在其中新增以下方法簽名
    public String sayHello();
  1. 在介面簽名前新增以下注釋
@Remote
  1. 開啟 MyFirstEJB 類。
  2. 刪除註釋 @LocalBean
  3. 在其中新增以下方法
    public String sayHello() {
        return "Hello World!";
    }
  1. 右鍵單擊專案。
  2. 選擇匯出 -> EJB JAR 檔案。如果您沒有找到 EJB JAR 檔案選項,請點選匯出...,選擇 EJB -> EJB JAR 檔案,然後點選下一步>。Web 專案應命名為 helloworld
  3. 選擇一個目標位置。
  4. 單擊完成。
  5. 轉到您建立 JAR 的資料夾。

您應該看到一個名為 helloworld-ejb.jar 的 JAR 檔案。您可以刪除它。

  1. 右鍵單擊專案資源管理器檢視。
  2. 選擇新建 -> 企業應用程式專案。
  3. 在“專案名稱”中,鍵入 helloworld-ear
  4. 單擊下一步。
  5. 選擇 helloworld-ejb 專案。
  6. 單擊完成。您應該有一個名為 helloworld-ear 的新專案。除了其他內容外,它還應包含部署描述符:helloworld-ear/Modules/EJB helloworld-ejb.jar。
  7. 右鍵單擊匯出 -> EAR 檔案,選擇一個目標位置,然後單擊完成。
  8. 建立 EAR 檔案的副本,並將副檔名更改為 .zip。
  9. 瀏覽 ZIP 檔案的內容。

您應該在其中看到名為 helloworld-ejb.jar 的 JAR 檔案。您可以刪除 ZIP 檔案。

  1. 將您的 EAR 檔案複製/貼上到應用程式伺服器的部署資料夾中。
  2. 啟動您的應用程式伺服器。

現在您的 EJB 可用。不幸的是,我們還不知道如何使用它。

  1. 關閉您的應用程式伺服器。
  2. 重新使用您在此頁面中建立的 WAR 專案。
  3. 右鍵單擊 Java 資源/src。
  4. 選擇新建 -> 包。
  5. 在名稱中,鍵入 org.wikibooks.en
  6. 右鍵單擊新包。
  7. 選擇新建 -> Servlet。
  8. 在類名中,鍵入 EJBServlet
  9. 在類中鍵入以下程式碼
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();
    }
}
  1. 如果您使用的是除 JBoss 之外的其他應用程式伺服器,則可能需要更改查詢 java:global/experience4/experience3/MyFirstEJB
  2. 在 WebContent/WEB-INF 中開啟 web.xml 檔案。
  3. 在第一個標記 <servlet> 之前,鍵入以下程式碼
    <servlet>
        <servlet-name>servlet</servlet-name>
       <servlet-class>org.wikibooks.en.EJBServlet</servlet-class>
    </servlet>
  1. 在第一個標記 <servlet-mapping> 之前,鍵入以下程式碼
    <servlet-mapping>
        <servlet-name>servlet</servlet-name>
        <url-pattern>/servlet</url-pattern>
    </servlet-mapping>
  1. 右鍵單擊匯出 -> EAR 檔案。
  2. 對於目標位置,選擇應用程式伺服器的部署資料夾。
  3. 單擊完成。
  4. 啟動您的應用程式伺服器。
  5. 轉到 URL https://:8080/helloworld/servlet

您應該看到 呼叫 EJB... 。這意味著您設法呼叫了 Servlet。您還應該看到 Hello World! 。如果您看到一個 Java 異常文字,則表示 Servlet 無法與 EJB 通訊。您可以透過更改程式碼中的文字並重新部署 EAR 來驗證文字是否來自 EJB。


Clipboard

待辦事項
新增解釋。

華夏公益教科書