Una aplicación accede al bean de sesión local adecuado mediante la
interfaz inicial del bean.
El bean de sesión puede ser el bean de sesión de
LocalBusinessFlowManager para las aplicaciones de proceso o el bean de sesión
LocalHumanTaskManager para las aplicaciones de tareas humanas.
- Añada una referencia al bean de sesión local 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 local para aplicaciones de proceso
se muestra en el ejemplo siguiente:
<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>
La referencia a la interfaz inicial
local para aplicaciones de tarea se muestra en el ejemplo siguiente:
<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>
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.
- Con los mecanismos de búsqueda JNDI (Java Naming and Directory
Interface), haga que la interfaz inicial local del bean de sesión local 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 local del bean LocalBusinessFlowManager
LocalBusinessFlowManagerHome processHome =
(LocalBusinessFlowManagerHome)initialContext.lookup
("java:comp/env/ejb/LocalBusinessFlowManagerHome");
La interfaz inicial del bean de sesión local
contiene un método create para objetos EJB. El método devuelve la interfaz local del bean de sesión.
- Acceda a la interfaz local del bean de sesión local. El ejemplo siguiente muestra este paso para
una aplicación de proceso:
LocalBusinessFlowManager process = processHome.create();
- 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 2 a 4 pueden buscar una
aplicación de tareas.
// Obtener el contexto inicial por omisión de JNDI
InitialContext initialContext = new InitialContext();
// Buscar la interfaz inicial local del bean LocalHumanTaskManager
LocalHumanTaskManagerHome taskHome =
(LocalHumanTaskManagerHome)initialContext.lookup
("java:comp/env/ejb/LocalHumanTaskManagerHome");
...
//Acceder a la interfaz local del bean de sesión local
LocalHumanTaskManager task = taskHome.create();
...
//Llamar a las funciones de empresa expuestas por la interfaz de servicio
task.callTask(tkiid,input);