如何在 EJB 3.0 中创建 SAP PI Adapter Module

介绍:

  我们都曾在某个时候在各种项目中创建自定义适配器模块。我们大部分都是用 EJB(Enterprise Java Bean) 2.1 标准编写的自定义模块。在这篇博客中,让我们看看 EJB 2.1 和 3.0 标准之间的一些主要区别,以及如何在 EJB 3.0 标准中开发和部署您的自定义模块。如果您对如何在 EJB 2.1 标准中创建/开发自定义适配器模块有基本知识,那么本文档将更有帮助。

差异:

EJB 2.1 和 EJB 3.0 之间的几个主要区别是

SN

EJB 2.1 版

EJB 3.0 版本

1

XML 部署描述符 (ejb-jar.xml) 是必需的

XML 部署描述符是可选的,可以使用注释

2

Bean 实现类必须实现 SessionBean 接口

不需要实现 SessionBean 接口

3

Bean 实现类必须覆盖所有 bean 生命周期方法,无论您是否使用它们

如果需要,使用 Comments 添加您自己的 bean 生命周期方法

4

开发人员需要做更多复杂工作

简单,开发人员的工作量更少,因为容器可以完成大部分工作。

EJB2.1 和 3.0 之间还有许多其他差异,但我们没有使用它们。

下面在 EJB 3.0 中创建一个简单的适配器模块:

为了简化实现,我们的自定义适配器模块只是将一条语句打印到audit log中。

第 1 步:在 NWDS 中创建新的 EJB 项目

  1. Project name: FileValidation_EJB
  2. EJB module version: 3.0
  3. Add EAR membership: FileValidation_EAR
  4. 单击 Next

  1. 取消选中用于创建  EJB client jar的选项
  2. 取消选中 Generate ejb-jar.xml deployment descriptor
  3. 单击 Finish

步骤 2:配置Build Path

  1. 右键单击 FileValidation_EJB
  2. 选择 Build Path > Configure Build Path 

  1. 选择 Libraries 选项卡
  2. 在 Add Library 中单击

  1. 选择 XPI 库
  2. 单击 Next

  1. 选择库类型:XPI Adapter Libraries
  2. 单击 Finish

第 3 步:创建新的会话 Bean

  1. 右键单击 FileValidation_EJB
  2. 选择 New > Session Bean(EJB 3.x)

  1. Java package: com.sap.pi
  2. Class name: Validation
  3. State type: Stateless
  4. 取消选中 create remote and local business interface
  5. 单击 Finish

向 Validation 类添加以下注释

  1. @Stateless(name=“ValidationBean”)
  2. @Local(value={ModuleLocal.class})
  3. @Remote(value={ModuleRemote.class})
  4. @LocalHome(value=ModuleLocalHome.class)
  5. @RemoteHome(value=ModuleHome.class

使用 @PostConstruct 和 @PreDestroy 注释实现 Module 接口并添加 Bean 生命周期方法。Bean 生命周期方法是可选的,可以忽略。

步骤 4:为模块提供 JNDI 名称

  1. FileValidation_EJB > EJBModule > META-INF 展开
  2. 双击 ejb-j2ee-engine.xml
  3. 右键单击 XML 节点 ejb-j2ee-engine
  4. 选择 Add Child > enterprise-bean

  1. 右键单击 XML 节点 enterprise-bean
  2. 选择 添加子项 > jndi-name

  1. ejb-name: ValidationBean(这应该与 @stateless 注解中指定的值相同)
  2. jndi-name: SetValidation (此名称将在通信通道模块选项卡中使用)
  3. 保存文件

第 5 步:向 EAR 添加标准引用

  1. 将 FileValidation_EAR > EarContent 扩展为 META-INF >
  2. 双击 application-j2ee-engine.xml
  3. 右键单击 XML 节点 application-j2ee-engine
  4. 选择 Add Child > reference

  1. 右键单击 reference-target
  2. 选择 Add Attribute > provider-name

  1. reference-target: engine.security.facade
  2. reference-type: hard
  3. target-type: service
  4. provider-name: sap.com

重复步骤 5 中的步骤并添加以下引用

SN

Reference-Target

Reference-Type

Target-Type

Provider-Name

1

engine.j2ee14.facade

hard

library

sap.com

2

com.sap.aii.af.svc.facade

hard

service

sap.com

3

com.sap.aii.af.ifc.facade

hard

interface

sap.com

4

com.sap.aii.af.lib.facade

hard

library

sap.com

5

com.sap.base.technology.facade

hard

library

sap.com

  1. 右键单击 XML 节点 application-j2ee-engine
  2. 选择 Add Child > fail-over-enable

  1. 右键单击 XML 节点 fail-over-enable
  2. 选择 Add Attribute > type

  1. 右键单击节点 fail-over-enable
  2. 选择 Add Attribute > mode

  1. xsi:type: fail-over-enableType_disable
  2. 模式:disable
  3. 保存文件

第 6 步:将 EAR 部署到 PI Web AS Java 中

  1. 右键单击 FileValidation_EAR
  2. 选择 Export > SAP EAR file

  1. 在本地文件系统上选择目标文件夹
  2. 选中 Export source files 并单击 Finish

将 SAP AS Java 实例添加到 NWDS

  1. Window > Preferences > SAP AS Java  单击“添加”按钮
  2. 输入您的 PI 系统主机名和实例编号,然后单击 OK(确定)

NWDS 中的开放部署透视图

  1. 选择 Window > Open Perspective > Other > Deploymen
  2. 单击 OK

在 Deployment Job 视图中

  1. 单击 Deployment List 下的 Import 按钮

  1. 选择文件系统
  2. 单击 Finish 并选择要从本地文件系统部署的 EAR 文件。

  1. 单击 Start 按钮开始部署
  2. 如果出现提示,请输入 j2ee_admin 凭据

该模块应该可以成功部署,没有任何错误

第 7 步:在通信通道中使用模块并测试

在通道中使用自定义开发的module

Audit log

注意:

  1. EJB3.0 解决了与 EJB2.0 相同的问题,但 EJB3.0 比 EJB2.0 对开发人员更友好
  2. 演示中使用 SAP NWDS (Net Weaver Developer Studio) 7.31 SP10,本文档中的屏幕截图可能会因您使用的 NWDS 版本而异。
  3. NWDS 中使用到的透视图是 Java EE

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值