应用程序通过 Bean 的 home 接口来访问适当的本地会话 Bean。
执行本任务的原因和时间
会话 Bean 可以是 LocalBusinessFlowManager 会话 Bean(用于流程应用程序)或 LocalHumanTaskManager 会话 Bean(用于人员任务应用程序)。
本任务的步骤
- 在应用程序部署描述符中添加对本地会话 Bean 的引用。 请添加对下列其中一个文件的引用:
- application-client.xml 文件(用于 Java™ 2 Platform, Enterprise Edition(J2EE)客户机应用程序)
- web.xml 文件(用于 Web 应用程序)
- ejb-jar.xml 文件(用于 Enterprise JavaBeans™(EJB)应用程序)
以下示例显示了流程应用程序中对本地 home 接口的引用:
<ejb-local-ref>
<ejb-ref-name>ejb/LocalBusinessFlowManagerHome</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local-home>com.ibm.bpe.api.LocalBusinessFlowManagerHome</local-home>
<local>com.ibm.bpe.api.LocalBusinessFlowManager</local>
</ejb-local-ref>
以下示例显示了任务应用程序中对本地 home 接口的引用:
<ejb-local-ref>
<ejb-ref-name>ejb/LocalHumanTaskManagerHome</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local-home>com.ibm.task.api.LocalHumanTaskManagerHome</local-home>
<local>com.ibm.task.api.LocalHumanTaskManager</local>
</ejb-local-ref>
如果使用 WebSphere® Integration Developer 来在部署描述符中添加 EJB 引用,就会在部署该应用程序时自动为
EJB 引用创建绑定。要了解有关添加 EJB 引用的更多信息,请参阅 WebSphere Integration Developer 文档。
- 使应用程序能够通过 Java 命名和目录接口(JNDI)查询机制来使用本地会话 Bean 的本地 home 接口。 以下示例显示了流程应用程序中的此步骤:
// Obtain the default initial JNDI context
InitialContext initialContext = new InitialContext();
// Lookup the local home interface of the LocalBusinessFlowManager bean
LocalBusinessFlowManagerHome processHome =
(LocalBusinessFlowManagerHome)initialContext.lookup
("java:comp/env/ejb/LocalBusinessFlowManagerHome");
本地会话 Bean 的 home 接口包含
EJB 对象的 create 方法。该方法返回该会话 Bean 的本地接口。
- 访问本地会话 Bean 的本地接口。 以下示例显示了流程应用程序中的此步骤:
LocalBusinessFlowManager process = processHome.create();
- 调用服务接口公布的企业函数。 以下示例显示了流程应用程序中的此步骤:
process.initiate("MyProcessModel",input);
应用程序中执行的调用是作为事务运行的。事务是以下列其中一种方式建立和结束的:
以下是在任务应用程序中执行步骤 2 到 4 的示例。
// Obtain the default initial JNDI context
InitialContext initialContext = new InitialContext();
// Lookup the local home interface of the LocalHumanTaskManager bean
LocalHumanTaskManagerHome taskHome =
(LocalHumanTaskManagerHome)initialContext.lookup
("java:comp/env/ejb/LocalHumanTaskManagerHome");
...
//Access the local interface of the local session bean
LocalHumanTaskManager task = taskHome.create();
...
//Call the business functions exposed by the service interface
task.callTask(tkiid,input);