跳转到内容

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://127.0.0.1:8080/helloworld/servlet

您应该看到 调用 EJB... 。这意味着您设法调用了 Servlet。您还应该看到 Hello World! 。如果您看到一个 Java 异常文本,则表示 Servlet 无法与 EJB 通信。您可以通过更改代码中的文本并重新部署 EAR 来验证文本是否来自 EJB。


Clipboard

待办事项
添加解释。

华夏公益教科书