访问本地会话 Bean

应用程序通过 Bean 的 home 接口来访问适当的本地会话 Bean。

执行本任务的原因和时间

会话 Bean 可以是 LocalBusinessFlowManager 会话 Bean(用于流程应用程序)或 LocalHumanTaskManager 会话 Bean(用于人员任务应用程序)。

本任务的步骤

  1. 在应用程序部署描述符中添加对本地会话 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 文档。

  2. 使应用程序能够通过 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 的本地接口。
  3. 访问本地会话 Bean 的本地接口。 以下示例显示了流程应用程序中的此步骤:
    LocalBusinessFlowManager process = processHome.create();
  4. 调用服务接口公布的企业函数。 以下示例显示了流程应用程序中的此步骤:
    process.initiate("MyProcessModel",input);
    应用程序中执行的调用是作为事务运行的。事务是以下列其中一种方式建立和结束的:
    • 由 WebSphere Application Server 自动建立和结束(部署描述符指定了 TX_REQUIRED)。
    • 由应用程序显式地建立和结束。可以将多个应用程序调用捆绑成一个事务:
      // Obtain user transaction interface
         UserTransaction transaction= 
             (UserTransaction)initialContext.lookup("jta/usertransaction");
      
         // Begin a transaction
         transaction.begin();
      
           // Applications calls ...
      
         // On successful return, commit the transaction
         transaction.commit();
以下是在任务应用程序中执行步骤 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);

使用条款 |


(c) Copyright IBM Corporation 2005, 2006.
本信息中心基于 Eclipse 技术(http://www.eclipse.org)。