引言
IBM® WebSphere® Process Server 是使用 IBM WebSphere Integration Developer 开发的业务集成解决方案的运行时平台。公司 IT 基础设施的现有很多业务功能均基于 Java™ 2 Enterprise Edition (J2EE) 的 无状态 Enterprise Java Bean (EJB) 编写的。设计和实现新业务流程集成应用程序时,能够方便地利用和集成这些功能非常重要。
概略关系图
本文中使用的方案相当简单。它由一个服务组件体系结构(Service Component Architecture,SCA)模块构成,该模块包含一个 Java 组件,而该 Java 组件将使用导入的 EJB 服务。
必备软件
需要安装以下软件:
本文假定您具有一定的 J2EE 知识,以前曾使用过 WebSphere Studio Application Developer 或 Rational Application Developer。要了解有关这些产品的更多信息,请访问 developerWorks。
配置
在这一部分,我们将开发一个示例 EJB 应用程序和一个使用该 EJB 服务的 SCA 模块。
可以首先创建企业应用程序、包和 EJB 会话。
创建名为 Echo 的企业应用程序,该应用程序包含一个 EJB 模块 EchoEJB。
创建名为 com.ibm.issw.poc.invokeejb 的包。
创建无状态 EJB 会话,将其命名为 Bean Echo。
创建一个简单的方法,将其命名为 echoSimple,并将其提升为远程接口:
|
打开 ejb 部署描述符,并留意一下 EJB 的缺省 JNDI 名称:
|
创建将稍后在 SCA 模块中使用的 EJB 客户端项目和 jar。
单击右键,并选择 EchoEJB => EJB Client Jar => Create EJB Client Project,然后在 name 字段中输入 EchoEJBClient。
运行并测试 EJB 应用程序(请参见图 5)。
现在已经创建了 EJB,接下来将对其进行集成。
创建 EJB 组件
要将 EJB 集成到 WebSphere Process Server SCA 组件中,请执行以下步骤:
创建名为 InvokeEcho 的模块。
从 Dependencies editor 选择 EchoEJBClient 作为依赖 Java 项目,并单击 Add,以将 EchoEJBCLient 作为依赖 Java 项目添加。
此时务必添加模块依赖关系。稍后添加接口时,向导才能够找到远程 EJB 接口。
从 Assembly editor 中打开模块 InvokeEcho,在画布上添加一个 Import 组件。将名称更改为 EchoEJB。
为导入添加接口:
单击 Add Interface 图标。
在随即出现的窗口中选择 Show Java。
在 Filter by interface 字段输入 echo。
从 Matching interfaces 中选择 Echo。此接口来自项目 /EchoEJBClient/ejbModule(请参阅图 8)。
单击 Ok 并保存模块关系图。
生成会话 EJB 绑定。
右键单击 EchoEJB 导入,并选择 Generate Binding => Stateless Session Bean Binding。
请注意导入中的图标变化(请参阅图 11)。
选择 Properties 视图,然后选择 Binding 选项卡。可以看到 JNDI name 字段现在已填充(请参阅图 12)。
创建 Java 组件
要创建 Java 组件,请执行以下步骤:
将 Java 组件拖放到 assembly 画布上,并将名称改为 InvokeEcho(请参阅图 13)。
创建名为 InvokeEchoInterface 的接口,其中包含一个单向操作 callEcho 和一个输入参数:
选择 Java 组件,并为其添加一个接口 InvokeEchoInterface。
将 InvokeEcho 和 EchoEJB 连接到一起(请参阅图 15)。
请注意已生成了引用 EchoPartner。我们将在 Java 组件实现中使用它(请参阅图 16)。
选择并右键单击 Java 组件,然后生成缺省 Java 实现。当实现打开后,使用以下代码替换 callEcho 方法:
|
运行并测试方案
要测试方案,请执行以下步骤:
右键单击 InvokeEcho 并选择 Test Component。
在测试配置中,删除 EchoEJB 的模拟器,因为我们希望调用实际的 EJB 实现。
在 name 字段中输入一个值,然后单击 Continue。
请注意是否收到预期结果。
请注意 System.out 输出的结果。
祝贺您现在已经成功从 SCA 组件 InvokeEcho 中导入 Echo EJB 并进行了调用。在此方案中,SCA 模块和 EJB 服务在同一服务器上运行。
|
结束语
本文帮助您实现了集成 EJB 服务的 WebSphere Process Server 解决方案。正如您所看到的,从 SCA 组件使用 EJB 服务非常容易。采用这种方式重用基于 EJB 的服务可为 WebSphere Process Server 等集成产品的应用带来大量机会。
致谢
作者希望感谢 Sam Kaipa 对本文所做的审阅工作。