首先,我们创建一个名为EnterpriseAppEE5的Java EE 5企业应用程序。在我们创建企业应用程序的同时,还将创建应用程序客户端。
创建企业应用程序
-
从主菜单选择“文件”>“新建项目”选项。
-
从“企业”类别中选择“企业应用程序”,然后单击“下一步”按钮。
-
键入 EnterpriseAppEE5 作为项目名,并指定项目位置。
-
如果“使用指定文件夹”选项为选中状态,则取消选中它。
(此选项对于 NetBeans IDE 6.1 可用。在本教程中,我们将项目库复制到一个专门的文件夹中,因为需要与其他用户或项目共享库。)
单击“下一步”按钮。 -
将服务器设置为 GlassFish 并将 Java EE 版本设置为 Java EE 5。
-
如果未选中“创建 EJB 模块”和“创建应用程序客户机模块”选项,请选中它们。
您可以取消选中“创建应用程序客户机模块”,因为本教程不需要网络模块。 -
单击“完成”按钮。
在企业应用程序中创建会话 Bean
现在,我们将在 EJB 模块中创建
-
右键单击“项目”窗口中的 EnterpriseAppEE5-ejb EJB 模块,然后选择“新建”>“其他”打开“新建文件”向导。
-
从“企业”类别中选择“会话 Bean”,然后单击“下一步”按钮。
-
键入 Session 作为 EJB 名称,并键入 ejb 作为包名。
-
选择“无状态”作为“会话类型”,然后选择“远程”作为创建接口的类型。
(您可以取消选中本地接口,因为本教程只使用远程接口。)
单击“完成”按钮。单击“完成”按钮时,bean 类
-
SessionBean.java 将在源编辑器中打开。
-
在“添加业务方法”对话框中,键入 getResult 作为名称,将“返回类型”设置为“字符串”,然后选中“远程接口”复选框。单击“确定”按钮。
-
在 SessionBean.java 中,将 getResult 方法修改为:
public String getResult() { return "This is EJB 3.0 Bean"; }
-
保存更改。
通过应用程序客户机调用会话 Bean
现在,我们将代码添加到用于调用 EJB bean 的应用程序客户机中。要修改应用程序客户机,请执行以下操作:
-
在“项目”窗口中展开“EnterpriseAppEE5-app-client”>“源包”> enterpriseappee5,然后双击 Main.java 在源编辑器打开该文件。
-
在源编辑器中单击鼠标右键,然后选择“企业资源” >“调用企业 Bean”。
-
在“调用企业 Bean”对话框中,选择 SessionBean 作为要调用的 bean 并选择“远程”作为“引用接口”。单击“确定”按钮。
单击“确定”按钮时,以下注释将被添加到 Main.java 中以调用会话 bean:@EJB private static SessionRemote sessionBean;
-
利用以下代码修改 main 方法,生成一些简单输出。我们将使用 System.err.println ,以便能方便地在“输出”窗口中查看消息。
public static void main(String[] args) { System.err.println("result=" + sessionBean.getResult());
-
保存更改。
配置企业应用程序
现在几乎所有事情都已经完成了,我们需要做的最后一件事就是设置作为模块的应用程序客户端,它应该在您运行企业应用程序时运行。
要配置企业应用程序,请执行以下操作:
-
右键单击“项目”窗口中的 EnterpriseAppEE5 企业应用程序节点,然后选择“属性”。
-
在“项目属性”对话框中选择“运行”。
-
在“客户机模块 URI”类别中选择“EnterpriseAppEE5-app-client ”(默认选项)。单击“确定”按钮。
运行企业应用程序
现在,我们可以运行企业应用程序并测试客户程序客户机。
-
右键单击“项目”窗口中的 EnterpriseAppEE5 并选择“运行”。
在运行项目时,IDE 将生成并部署应用程序。以下消息将出现在“输出”窗口中:
result = This is EJB 3.0 Bean
-
博主注:
如果不是将EJB和应用程序客户端集成在企业应用程序项目中(也就是EJB和客户端是单独部署)运行的话,则不能使用EJB注入方式,只能使用InitialContext进行查找,并且,EJB须使用设置mappedName属性(也可使用【类名/remote】查找)。例子:
或者
另外:客户端的运行,只能使用右键项目-》【运行】的方式,不能直接运行main类。