如何在 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值