Pautas de integración Seam - EJB3
- Área: Integración de Capas en Aplicaciones Java
- Tipo de pauta: Directriz
- Carácter de la pauta: Obligatoria
Seam facilita la integración y el entendimiento entre JSF y EJB3, pero aún así se deben seguir unas recomendaciones para afinar su integración con EJB3.
Seam es un framework que tiene como objetivo facilitar la integración entre las especificaciones de Java EE5.
Pautas
Título | Carácter |
---|---|
Configuración del interceptor EJB para Seam | Obligatoria |
Definición de los componentes Seam para utilizarse dentro del contenedor de EJB | Obligatoria |
Configuración del interceptor EJB para Seam
Si se van a usar componentes EJB es necesario instalar el interceptor de EJB de Seam dentro del descriptor de desarrollo de EJB, modificando el fichero ejb-jar.xml:
<ejb-jar>
. . .
<assembly-descriptor>
<interceptors>
<interceptor>
<interceptor-class>
org.jboss.seam.ejb.SeamInterceptor
</interceptor-class>
</interceptor>
</interceptors>
<interceptor-binding>
<ejb-name>*</ejb-name>
<interceptor-class>
org.jboss.seam.ejb.SeamInterceptor
</interceptor-class>
</interceptor-binding>
</assembly-descriptor>
. . .
</ejb-jar>
Esta entrada provocará que Seam intercepte todos los componentes EJB que se desarrollen como parte de la aplicación. El interceptor permitirá que todos los componentes EJB sean usados como componentes Seam, insertándolos en el ciclo de vida de un componente Seam cuando anote su EJB con la anotación @Name de Seam.
Definición de los componentes Seam para utilizarse dentro del contenedor de EJB
Es posible desarrollar aplicaciones Seam con un pequeño o directamente sin un fichero components.xml. Este no debería de ser el caso base pues cualquier servicio Seam que use, normalmente requerirá alguna configuración de datos para funcionar correctamente. Si usa componentes EJB3 como componentes Seam, no necesita esta configuración. Pero en el caso el caso que ordene a Seam interactuar con el contenedor EJB3, necesita introducir una entrada con el código de la inicialización del componente Seam y esta entrada tendrá que incluir una configuración para el patrón JDNI que Seam utilizará para encontrar los componentes EJB de la aplicación dentro de los servicios JNDI del servidor de aplicaciones. Un ejemplo sería el siguiente:
<components>
<component name="org.jboss.seam.core.init">
<property name="jndiPattern">myApplication/#{ejbName}/local</property>
</component>
</components>