三、部署Bean

部署和运行步骤是通过使用MyEclipse将bean部署到符合Java EE 6.0的应用程序服务器来完成的,本教程使用Glassfish 3.1。

1. 在Servers视图中右键单击Glassfish服务器,然后选择Add/Remove部署。

2. 在可用列表中选择SampleEJBProject,单击Add,然后单击Finish。




JAVA创建一个菜单栏 java创建一个界面_JAVA创建一个菜单栏


将项目添加到服务器


3. 右键单击服务器,如果服务器未运行,请选择Start。

应用程序服务器启动并显示关于成功部署会话Bean的控制台视图消息。



JAVA创建一个菜单栏 java创建一个界面_Java_02


控制台输出


四、测试Bean

要测试,您需要在包中创建一个新的Java测试类。

1. 右键单击该包,然后选择New>Class。



JAVA创建一个菜单栏 java创建一个界面_JAVA创建一个菜单栏_03


创建一个测试类


2. 在Name字段汇总输入MyBeanClient,然后选择Public static void main复选框来告诉MyEclipse为它生成一个main方法,单击Finish。



JAVA创建一个菜单栏 java创建一个界面_服务器_04


Java类详细信息在向客户端添加并运行代码之前,需要将gf-client.jar添加到构建路径中。该JAR来自Glassfish 3库文件夹,并且包含一个自定义的jndi.properties文件,可以自动直接连接到Glassfish 3 JNDI上下文,几乎不用再检索该bean。

3. 右键单击该项目,然后选择Build Path>Configure Build Path。

4. 选择Libraries标签,然后单击Add External JARs。



JAVA创建一个菜单栏 java创建一个界面_Java_05


将外部JAR添加到构建路径


5. 导航到Glassfish安装文件夹,然后导航到lib文件夹,然后双击gf-client.jar。

6. 单击OK。



JAVA创建一个菜单栏 java创建一个界面_Java_06


将外部JAR添加到构建路径,现在您可以向测试客户端添加代码并运行它。

7. 双击MyBeanClient.java,并用以下的代码进行替换,使用CTRL + S保存。


package          sampleejbproject;        

         import          javax.naming.InitialContext;        

         import          javax.naming.NamingException;        

         public          class          MyBeanClient {        

                  

         public          static          void          main(String[] args) {        

         try          {        

         InitialContext ctx =          new          InitialContext();        

         MyBeanRemote bean = (MyBeanRemote) ctx.lookup(MyBeanRemote.         class         .getName());        

         bean.doSomething();        

         }        

         catch          (NamingException e) {        

         e.printStackTrace();        

         }        

         }        

         }



在上面的代码中有一些关键的信息要注意:

  • 代码将返回的bean转换为MyBean而不是MyRemoteBean,因为它正在从JNDI上下文中请求远程Bean。如上所述,不同的本地/远程接口暴露的方法可能会有所不同,因此您需要坚持请求接口。
  • Glassfish对未指定EJB的EJB使用默认的JNDI名称绑定,再查看服务器日志截图。注意默认名称打印在日志中,此默认名称因应用程序服务器而异,大多数人将使用@Stateless注释的mappedName值来指定所有应用服务器中的新绑定。例如:@Stateless(name=”MyBean”, mappedName=”ejb/MyBean”)。
  • 在拥有了bean之后,您可以像一个本地实例一样对待它,只需要调用它即可。

由于bean代码的编写(System.out.println),结果将输出到MyEclipse中的应用程序服务器控制台视图。要查看应用程序的结果,请右键单击MyBeanClient.java,然后从菜单中选择Run As> Java Application。



JAVA创建一个菜单栏 java创建一个界面_服务器_07


运行测试客户端的结果


五、资源