引言
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 服务。
图 1. 模块概况
必备软件
需要安装以下软件:
- WebSphere Integration Developer V6
- WebSphere Process Server V6 测试环境
本文假定您具有一定的 J2EE 知识,以前曾使用过 WebSphere Studio Application Developer 或 Rational Application Developer。要了解有关这些产品的更多信息,请访问 developerWorks。
配置
在这一部分,我们将开发一个示例 EJB 应用程序和一个使用该 EJB 服务的 SCA 模块。
可以首先创建企业应用程序、包和 EJB 会话。
-
创建名为
Echo
的企业应用程序,该应用程序包含一个 EJB 模块EchoEJB
。 -
创建名为
com.ibm.issw.poc.invokeejb
的包。 -
创建无状态 EJB 会话,将其命名为
Bean Echo。
图 2. 创建 EJB
-
创建一个简单的方法,将其命名为
echoSimple
,并将其提升为远程接口:public String echoSimple(String name){ System.out.println("inside echoSimple"); return "Hello, " + name; }
-
打开 ejb 部署描述符,并留意一下 EJB 的缺省 JNDI 名称:
ejb/com/ibm/issw/poc/invokeejb/EchoHome
图 3. EJB JNDI 名称
-
创建将稍后在 SCA 模块中使用的 EJB 客户端项目和 jar。
-
单击右键,并选择 EchoEJB => EJB Client Jar => Create EJB Client Project,然后在 name 字段中输入
EchoEJBClient
。
图 4. EJB 客户端
-
运行并测试 EJB 应用程序(请参见图 5)。
图 5. 测试 EJB
现在已经创建了 EJB,接下来将对其进行集成。
创建 EJB 组件
要将 EJB 集成到 WebSphere Process Server SCA 组件中,请执行以下步骤:
-
创建名为
InvokeEcho
的模块。 -
从 Dependencies editor 选择 EchoEJBClient 作为依赖 Java 项目,并单击 Add,以将 EchoEJBCLient 作为依赖 Java 项目添加。
图 6. 添加依赖关系
此时务必添加模块依赖关系。稍后添加接口时,向导才能够找到远程 EJB 接口。
-
从 Assembly editor 中打开模块
InvokeEcho
,在画布上添加一个Import
组件。将名称更改为EchoEJB
。
图 7. 添加 Import 组件
-
为导入添加接口:
-
单击 Add Interface 图标。
-
在随即出现的窗口中选择 Show Java。
-
在 Filter by interface 字段输入
echo
。 -
从 Matching interfaces 中选择 Echo。此接口来自项目 /EchoEJBClient/ejbModule(请参阅图 8)。
图 8. 为导入添加接口
-
-
单击 Ok 并保存模块关系图。
图 9. 带接口的导入
-
生成会话 EJB 绑定。
-
右键单击 EchoEJB 导入,并选择 Generate Binding => Stateless Session Bean Binding。
图 10. 添加绑定
-
请注意导入中的图标变化(请参阅图 11)。
图 11. 带接口绑定的导入
-
选择 Properties 视图,然后选择 Binding 选项卡。可以看到 JNDI name 字段现在已填充(请参阅图 12)。
图 12. 指定绑定的 JNDI 名称
-
创建 Java 组件
要创建 Java 组件,请执行以下步骤:
-
将 Java 组件拖放到 assembly 画布上,并将名称改为
InvokeEcho
(请参阅图 13)。
图 13. 添加 Java 组件
-
创建名为
InvokeEchoInterface
的接口,其中包含一个单向操作callEcho
和一个输入参数:
图 14. 创建接口
-
选择 Java 组件,并为其添加一个接口
InvokeEchoInterface
。 -
将 InvokeEcho 和 EchoEJB 连接到一起(请参阅图 15)。
图 15. 连接 Java 并导入组件
请注意已生成了引用 EchoPartner。我们将在 Java 组件实现中使用它(请参阅图 16)。
图 16. 合作伙伴引用
-
选择并右键单击 Java 组件,然后生成缺省 Java 实现。当实现打开后,使用以下代码替换 callEcho 方法:
try { System.out.println("in callEcho"); // Create an instance of the ServiceManager ServiceManager serviceManager = new ServiceManager(); Echo echo= (Echo)serviceManager.locateService("EchoPartner"); String result = echo.echoSimple(name); System.out.println("called imported EJB, and response is " + result); } catch (Exception e) { e.printStackTrace(); }
运行并测试方案
要测试方案,请执行以下步骤:
-
右键单击 InvokeEcho 并选择 Test Component。
-
在测试配置中,删除 EchoEJB 的模拟器,因为我们希望调用实际的 EJB 实现。
-
在 name 字段中输入一个值,然后单击 Continue。
图 17. 组件测试 1
-
请注意是否收到预期结果。
图 18. 组件测试 2
请注意 System.out 输出的结果。
图 19. 组件测试 3
祝贺您现在已经成功从 SCA 组件 InvokeEcho
中导入 Echo EJB 并进行了调用。在此方案中,SCA 模块和 EJB 服务在同一服务器上运行。
|
结束语
本文帮助您实现了集成 EJB 服务的 WebSphere Process Server 解决方案。正如您所看到的,从 SCA 组件使用 EJB 服务非常容易。采用这种方式重用基于 EJB 的服务可为 WebSphere Process Server 等集成产品的应用带来大量机会。
致谢
作者希望感谢 Sam Kaipa 对本文所做的审阅工作。
文章来源于领测软件测试网 https://www.ltesting.net/
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073