技术开发 频道

JBoss中部署的Enterprise JavaBeans组件

【IT168 技术文档】

  虽然 Java Studio Creator 不支持 JBoss 应用服务器,但是您还是可以通过几个简单的步骤来调用 JBoss 服务器上的这些 EJB 组件。此技术提示说明了如何完成此操作。

    首先要说明一下 JBoss 和 NetBeans 版本以及此提示中所概述的步骤。我使用的是 JBoss 4.0.2 版本,同样的步骤似乎应该适用于 JBoss 3.x 和 4.x。但是,如果使用 NetBeans 5.0 来创建 EJB 组件,您应该坚持使用 JBoss 4.0.2 或 4.0.3 版本。如果将 NetBeans 5.0 Beta Version 2 与 JBoss 4.0.0 或 4.0.1 版本一起使用,则可能会出现严重问题(虽然 NetBeans 5.0 Beta Version 2 通常仅支持 JBoss 4.0.3,但我发现它也可以与 JBoss 4.0.2 一起使用而不出现任何问题)。

    此技术提示将首先介绍如何创建样例 EJB 组件,然后说明如何在 Java Studio Creator 中使用该组件。

    创建并部署 EJB 组件 

    首先,让我们在 NetBeans 5.0 Beta Version 2 中创建一个简单的 HelloWorld EJB 组件。然后,我们将此 EJB 组件部署到与 Java Studio Creator 捆绑在一起的 Sun Java System Application Server 以及 JBoss 4.0.2 应用服务器上。有关如何使用 NetBeans 的信息,请参阅 NetBeans 站点。

    将与 Java Studio Creator 捆绑在一起的 Sun Java System Application Server 以及 JBoss 服务器都添加到 NetBeans 中。
在 NetBeans 中,转至“工具”>“服务器管理器”菜单,然后添加这两个服务器。捆绑的 Sun Java System Application Server 位于 <creator-install-dir>/SunAppServer8 目录中。添加 JBoss 应用服务器时,请务必选择所有域(而非缺省或最小域),因为您将需要来自此服务器类型的 IIOP 服务。

    创建 HelloWorld EJB 组件。首先在 NetBeans 5.0 中创建一个 EJB 模块项目(请使用远程接口来确保 EJB 组件的部署工作能够正常进行)。利用 NetBeans 可以方便地创建 EJB 组件。如果您需要帮助,请阅读 NetBeans 教程。出于我本人的考虑,只创建了一个名为 HelloWorld 的、尽可能简单的会话 Bean,它包含一个返回字符串 Hello World! 的 sayHello 方法。
以下是基本步骤:

    单击“文件”>“新建项目”以打开“新建项目”对话框。在“新建项目”对话框中,从“类别”中选择“企业”,从“项目”中选择“EJB 模块”,然后单击“下一步”。输入 Hello 作为项目名称,并从“服务器”下拉列表中选择 "Sun Java System Application Server",然后单击“完成”。

    运行 Hello 项目。这会将 HelloWorld EJB 组件部署到捆绑的 Sun Java System Application Server 中。

    右键单击 "Hello" 项目节点并选择“属性”。从“类别”中选择“运行”节点,然后从“服务器”下拉列表中选择 "JBoss Application Server 4.0.3" 以更改服务器。单击“确定”。

    打开 Hello 项目中的“配置文件”节点。右键单击 "jboss.xml"(该文件是特定于 JBoss 的 Enterprise JavaBeans 部署描述符),然后选择“编辑”。将以下代码粘贴到该文件中:

<?xml version="1.0" encoding="UTF-8"?>
<jboss>
<enterprise-beans>
<session>
<ejb-name>HelloWorldBean</ejb-name>
<invoker-bindings>
<invoker>
<invoker-proxy-binding-name>
iiop
</invoker-proxy-binding-name>
<jndi-name>ejb/HelloWorldBean</jndi-name>
</invoker>
</invoker-bindings>
</session>
</enterprise-beans>
</jboss>
    下面是有关粘贴代码的重要说明,请切记:

    在 jboss.xml 文件和 sun-ejb-jar.xml 文件中使用相同的 JNDI 名称非常重要。在本例中,对于 JBoss 和 Sun Java System Application Server,HelloWorld EJB 组件的 JNDI 名称都是 ejb/HelloWorldBean。您必须在这两个文件中使用相同的 JNDI 名称,这样 Java Studio Creator 才能使用 JBoss 服务器中的 EJB 组件。

    覆盖 invoker-bindings 设置以使用 iiop 调用器。执行此操作会使得 HelloWorld EJB 组件能够启用 IIOP,从而可以通过 RMI/IIOP 来访问该组件。有关调用器的详细信息,请参见 JBoss 指南。

    再次运行 Hello 项目,以便将 EJB 组件部署到 JBoss 应用服务器中。 

    在 Java Studio Creator 中使用 EJB 组件

    由于 Java Studio Creator 不支持 JBoss 应用服务器,因此首先要让 Web 应用程序与在捆绑的 Sun Java System Application Server 中部署的 EJB 组件进行对话。对话成功后,您可以将 JNDI 名称更改为指向 JBoss 服务器中部署的 EJB 组件。

    以下是完成此操作的步骤:

    将 HelloWorld EJB 组件添加到 Java Studio Creator IDE 中。

    在“服务器”窗口中,右键单击 "Enterprise JavaBeans" 节点,然后选择“添加会话 EJB 集”。在向导中输入以下内容:

    对于“应用服务器”:Sun Java System Application Server 8.1

    对于“服务器主机”:localhost

    对于“RMI-IIOP 端口”:23700

    对于“客户端 Jar”:单击“添加”,然后导航到 <creator-install-dir>/SunAppServer8/domains/creator/applications/j2ee-modules/Hello/HelloClient.jar 文件并选择该文件。

    单击“下一步”,然后单击“完成”。

    按常规方式生成 Web 应用程序。在捆绑的应用服务器中测试 HelloWorld EJB Web 应用程序。在本例中,我创建了一个 Web 应用程序,以在静态文本组件中显示 "Hello World!"。有关如何在 IDE 中使用 EJB 组件的详细信息,请参见教程使用 EJB 组件。

    此时,Web 应用程序应该可以正常使用捆绑的应用服务器中的 HelloWorld EJB 组件。

    现在,您可以让 Web 应用程序使用在 JBoss 应用服务器中部署的 HelloWorld EJB 组件。
    在“服务器”窗口中,右键单击包含 HelloWorld EJB 组件的 EJB 集,然后选择“修改”。
    将 RMI-IIOP 端口更改为 3528,即 JBoss 中的缺省 IIOP 端口。
    由于 JBoss 应用服务器也位于本地主机上,因此不需要更改服务器主机。
    大功告成了!再次运行 Web 应用程序。现在访问的是在 JBoss 服务器中部署的 HelloWorld EJB 组件。为切实确保应用程序调用 JBoss 服务器中的同一 HelloWorld EJB 组件,您可以在 Sun Java System Application Server 中取消部署 HelloWorld EJB 组件,然后再次运行 Web 应用程序。现在,您可以相信自己调用的确实是 JBoss 服务器中的 EJB 组件!

0
相关文章