Consideraciones especiales con componentes

<< Click to Display Table of Contents >>

Navigation:  Bizagi Studio > Asistente de Procesos > Integrar > Integración con aplicaciones > Integrar APIs o código personalizado en Bizagi > Componentes personalizados > Ejemplo en JEE >

Consideraciones especiales con componentes

applies_JEE

 

 

Cuando se utiliza la funcionalidad de la librería de componentes en Bizagi, existen algunos escenarios para los cuales se debe realizar configuración adicional en el Servidor de Aplicaciones JEE.

Esto escenarios se dan cuando se utilizan APIs de terceros (el uso de librerías externas o archivos jar comunes), y se pueden describir como:

Cuando mi componente hace referencia a archivos jar que ya están contenidos en el servidor de Aplicaciones JEE.

Si este es el caso, entonces lo importante acá es garantizar que no hayan conflictos con este jar, dado que el componente utilizará este archivo o uno de una versión similar.

Cuando mi componente hace referencia a un API, que a su vez utiliza otras APIs.

Si este es el caso, nótese que deberá incluir esas otras APIs en el Servidor de aplicaciones e incluir una referenciación manualmente.

 

Este artículo describe cómo registrar componentes donde se tienen cualquiera de los 2 escenarios descritos anteriormente, al utilizar la funcionalidad de librería de componentes de Bizagi y la edición Enterprise JEE.

 

Nótese que estos pasos no aplicarán a escenarios más simples, donde se desarrolla un componente y éste no utiliza APIs adicionales.

Para más información y un ejemplo básico del uso de la librería de componentes en la edición JEE, consulte Ejemplo en Enterprise JEE.

 

 

Consideración especial

Para utilizar correctamente la funcionalidad de librería de componentes en estos escenarios, realice:

 

1. Asegúrese de compilar su componente como una librería que no incluya en el jar final las referencias que utiliza.

2. Únicamente registre este componente en la librería de componentes (solo su componente que es el punto de entrada para la lógica de las reglas de negocio).

 

3. Incluya los archivos jar adicionales en la carpeta de librería del Servidor de Aplicaciones JEE.

 

Si usted utiliza WebSphere o Weblogic, deberá solamente incluir estos jars en esta ruta:

Para WebSphere:

Incluirlas en <WEBSPHERE_HOME>\lib\ext\.

Si ya existe esa versión o una similar, deberá asegurarse de que no hayan conflictos, lo cuál se puede revisar usualmente al momento de subir el servicio del servidor.

 

Para Weblogic:

Incluirlas en <WEBLOGIC_HOME>\wlserver_10.3\server\lib\.

Si ya existe esa versión o una similar, deberá asegurarse de que no hayan conflictos, lo cuál se puede revisar usualmente al momento de subir el servicio del servidor.

 

 

Si usted utiliza JBoss, deberá realizar un paso adicional, el cual consiste en registrar manualmente estas referencias en un archivo de configuración.

Para mayor detalle sobre esto, consulte la siguiente sección con el ejemplo en JBoss.

 

 

Ejemplo para JBoss

Un ejemplo típico para ilustrar de mejor manera la configuración adicional, es cuando desarrollamos un componente que se usa en la conexión a unos servicios Web, y dicho componente es un cliente de servicio Web que se basa en AXIS.

 

Este cliente entonces se apoya en las siguientes librerías externas:

 

 

JEE_externalrefs

 

Este escenario nos representa una configuración adicional porque las invocaciones a servicios Web en JBoss se manejan a través del utilitario que provee java, llamado wsimport.jar.

 

Por lo tanto, nuestro primer paso es asegurarnos que compilemos el componente sin incluir estas 6 librerías referenciadas, y que registremos únicamente este componente en la librería de componentes de Bizagi.

 

En seguida, copiamos nuestro componente además de las 6 librerías en el repositorio de librerías del JBoss en:

<BIZAGI_HOME>\jboss-eap-6.2\modules\system\layers\base\com\bizagi\clibrary\main

 

Considere:

<BIZAGI_HOME>: Es la ruta de instalación donde se encuentra la Consola administrativa JEE.

En un ambiente de desarrollo, esta ruta representa el directorio de instalación de la edición Bizagi JEE Enterprise el cual por defecto es

C:/BizagiJEE/.

De esta manera y para el registro de las librerías, un primer paso se realiza por Bizagi a través de su consola de administración JEE, cuando se usan los comandos de publicación (publish) o el de predeploy, donde se crea la estructura base para la configuración manual.

Sea cuando se realiza el despliegue de la aplicación en JBoss (generación del Portal de trabajo para ambientes de pruebas o producción), o cuando se trabaja con Bizagi Studio, Bizagi generará el archivo para configurar manualmente los Experto.

 

Antes de ejecutar los comandos publish o predeploy, se recomienda asegurarse que haya borrado manualmente el folder clibrary en <JBOSS_HOME>\modules\system\layers\base\com\bizagi\.

 

Una vez que haya realizado la publicación o usado el comando predeploy, deberá editar el archivo modules.xml que se encuentra en:

<JBOSS_HOME>\modules\system\layers\base\com\bizagi\clibrary\main\

 

ComponentLibraryJEE02

 

Para editar este archivo considere lo siguiente:

 

Incluya el elemento module para las referencias a las librerías usadas directamente o indirectamente por su componente, al adiciona lo siguiente:

<?xml version="1.0" encoding="UTF-8"?>

<module xmlns="urn:jboss:module:1.1" name="com.bizagi.clibrary">

 <resources>

   <resource-root path="[MI_COMPONENTE].jar"/>

   <resource-root path="[REF_LIBRERIA1].jar"/>

   <resource-root path="[REF_LIBRERIA2].jar"/>

 </resources>

 <dependencies>

    <module name="[PACKAGE_REFERENCIADO_POR_LIBRERIAS_JEE]"/>

 </dependencies>

</module>

 

En nuestro ejemplo del cliente con AXIS, el archivo de configuración finalmente se verá como:

<?xml version="1.0" encoding="UTF-8"?>

<module xmlns="urn:jboss:module:1.1" name="com.bizagi.clibrary">

  <resources>

   <resource-root path="axis.jar"/>

   <resource-root path="jaxrpc.jar"/>

   <resource-root path="commons-discovery-0.2.jar"/>

   <resource-root path="commons-logging.jar"/>

   <resource-root path="saaj.jar"/>

   <resource-root path="wsdl4j.jar"/>

   <resource-root path="activation-1.1.jar"/>

   <resource-root path="log4j-1.2.17.jar"/>

   <resource-root path="MiComponente.jar"/>

  </resources>

  <dependencies>

      <module name="javax.api"/>

  </dependencies>

</module>

 

Nuestro componente se llama MiComponente.jar y dado que utiliza otras librerías, éstas también se incluyen en la definición del módulo:

Axis.jar

Jaxrpc.jar

Commons-discovery-0.2.jar

Commons-logging.jar

Saaj.jar

Wsdl4j.jar

Activation-1.1.jar

Log4j-1.2.17.jar

 

 

De manera similar, estas librerías de AXIS que referenciamos, también utilizan clases del package javax.api del framework de JEE. Por este movio, esto se incluye bajo <dependencies>.

Una vez que haya editado el archivo, guarde los cambios y ciérrelo.

 

Para mayor detalle sobre la arquitectura de JBoss, sobre la creación de Experto y carga de clases (para referenciar clases dentro de jars), se recomienda revisar la siguiente documentación del fabricante:

https://access.redhat.com/documentation/en-US/JBoss_Enterprise_Application_Platform/6.2/html/Development_Guide/chap-Class_Loading_and_Modules.html