Acceso al bean de sesión remota

Una aplicación accede al bean de sesión remota adecuado mediante la interfaz inicial del bean.

El bean de sesión puede ser el bean de sesión de BusinessFlowManager para las aplicaciones de proceso o el bean de sesión HumanTaskManager para las aplicaciones de tareas.
  1. Añada una referencia al bean de sesión remoto en el descriptor de despliegue de la aplicación. Añada la referencia a uno de los archivos siguientes:
    • El archivo application-client.xml, para una aplicación de cliente J2EE (Java 2 Platform, Enterprise Edition)
    • El archivo web.xml para una aplicación Web
    • El archivo ejb-jar.xml, para una aplicación Enterprise JavaBeans (EJB)
    La referencia a la interfaz inicial remota para aplicaciones de proceso se muestra en el ejemplo siguiente:
    <ejb-ref>
    	<ejb-ref-name>ejb/BusinessFlowManagerHome</ejb-ref-name>
    	<ejb-ref-type>Session</ejb-ref-type>
    	<home>com.ibm.bpe.api.BusinessFlowManagerHome</home>
    	<remote>com.ibm.bpe.api.BusinessFlowManager</remote>
    </ejb-ref>
    La referencia a la interfaz inicial remota para aplicaciones de tarea se muestra en el ejemplo siguiente:
    <ejb-ref>
    	<ejb-ref-name>ejb/HumanTaskManagerHome</ejb-ref-name>
    	<ejb-ref-type>Session</ejb-ref-type>
    	<home>com.ibm.task.api.HumanTaskManagerHome</home>
    	<remote>com.ibm.task.api.HumanTaskManager</remote>
    </ejb-ref>

    Si utiliza WebSphere Integration Developer para añadir la referencia EJB al descriptor de despliegue, el enlace para la referencia EJB se crea automáticamente cuando se despliega la aplicación. Para obtener más información sobre cómo añadir referencias EJB, consulte la documentación de WebSphere Integration Developer.

  2. Empaquete los módulos de programa generados con la aplicación.

    Si la aplicación se ejeucta en una JVM (Java Virtual Machine) distinta de aquélla en la que se ejecuta la aplicación BPEContainer o la aplicación TaskContainer, realice las acciones siguientes:

    1. Para las aplicaciones de proceso, empaquete el archivo <raíz_instalación>/ProcessChoreographer/client/bpe137650.jar con el archivo EAR (Enterprise Archive) de la aplicación.
    2. Para las aplicaciones de tarea, empaquete el archivo <raíz_instalación>/ProcessChoreographer/client/task137650.jar con el archivo EAR de la aplicación.
    3. Establezca el parámetro Class-Path en el archivo de manifiesto del módulo de aplicación para incluir el archivo JAR. El módulo de aplicación puede ser una aplicación J2EE, una aplicación Web o una aplicación EJB.
  3. Con los mecanismos de búsqueda JNDI (Java Naming and Directory Interface), haga que la interfaz inicial del bean de sesión esté disponible para la aplicación. El ejemplo siguiente muestra este paso para una aplicación de proceso:
    // Obtener el contexto inicial por omisión de JNDI
    InitialContext initialContext = new InitialContext();
    
      // Buscar la interfaz inicial remota del bean BusinessFlowManager
      Object result =
             initialContext.lookup("java:comp/env/ejb/BusinessFlowManagerHome");
    
    // Convertir el resultado de búsqueda al tipo adecuado
       BusinessFlowManagerHome processHome = 
               (BusinessFlowManagerHome)javax.rmi.PortableRemoteObject.narrow
               (result,BusinessFlowManagerHome.class);
    La interfaz inicial del bean de sesión contiene un método create para objetos EJB. El método devuelve la interfaz remote del bean de sesión.
  4. Acceda a la interfaz remota del bean de sesión. El ejemplo siguiente muestra este paso para una aplicación de proceso:
    BusinessFlowManager process = processHome.create();
  5. Llame a las funciones de empresa expuestas por la interfaz de servicio. El ejemplo siguiente muestra este paso para una aplicación de proceso:
    process.initiate("MyProcessModel",input);
    Las llamadas procedentes de las aplicaciones se ejecutarán como transacciones. Se establece y finaliza una transacción de alguna de las formas siguientes:
    • Automáticamente, por parte de WebSphere Application Server (el descriptor de despliegue especifica TX_REQUIRED).
    • Explícitamente, por parte de la aplicación. Puede empaquetar las llamadas de aplicación en una transacción:
      // Obtener interfaz de transacción de usuario
         UserTransaction transaction=
             (UserTransaction)initialContext.lookup("jta/usertransaction");
      
         // Iniciar una transacción
         transaction.begin();
      
           // Llamadas de aplicaciones ...
      
         // Cuando se devuelva de forma satisfactoria, confirmar la transacción
         transaction.commit();
Éste es un ejemplo de cómo los pasos 3 a 5 pueden buscar una aplicación de tareas.
// Obtener el contexto inicial por omisión de JNDI
InitialContext initialContext = new InitialContext();

  // Buscar la interfaz inicial remota del bean HumanTaskManager
  Object result =
         initialContext.lookup("java:comp/env/ejb/HumanTaskManagerHome");

// Convertir el resultado de búsqueda al tipo adecuado
   HumanTaskManagerHome taskHome = 
           (HumanTaskManagerHome)javax.rmi.PortableRemoteObject.narrow
           (result,HumanTaskManagerHome.class);

...
//Acceder a la interfaz remota del bean de sesión.
HumanTaskManager task = taskHome.create();
...
//Llamar a las funciones de empresa expuestas por la interfaz de servicio
task.callTask(tkiid,input);

Condiciones de uso |

Última actualización: Wed Apr 19 21:34:07 2006

(c) Copyright IBM Corporation 2005, 2006.
Este centro de información está basado en tecnología Eclipse (http://www.eclipse.org)