miércoles, 23 de octubre de 2013

Mejores prácticas: WebCenter Portal (antes Spaces) web.xml

Para modificar el archivo web.xml en Oracle WebCenter Spaces (PS1-PS6) / WebCenter Portal (PS7) la documentación oficial tiene la siguiente información:
  • Documentación oficial 11.1.1.1-11.1.1.7: La documentación para las versiones previas a la actual dicen de desempaquetar la aplicación de webcenter.ear y realizar las modificaciones pertinentes.
  • Documentación oficial 11.1.1.8: Elimina la parte de desempaquetar y cambiar la configuración manualmente en el servidor. Sin embargo, se refiere a ciertos parámetros que podrían querer modificarse.
¿Qué ocurre en caso de modificar manualmente el archivo web.xml?
Los cambios realizados en web.xml se pierder tras cada aplicación de parche o actualización a WebCenter.

¿Cuál es la mejor práctica en caso de querer modificar el archivo web.xml?
El archivo web.xml puede modificarse usando la aplicación de extensión de WebCenter Spaces / Portal.

Para ello hay que tener en cuenta la versión de WebCenter:

Versiones inferiores a WebCenter Portal 11.1.1.8 
En la aplicación DesignWebCenterSpaces, añadir el archivo web.xml como recurso en el despliegue de la extension de WebCenter Spaces.
  • En el proyecto WebCenterSpacesExtensionLibrary. Habilita en la carpeta Resources que se pueda editar web.xml.
    Añadir el archivo web.xml a los recursos para que sea editable desde el proyecto
  • En el proyecto WebCenterSpacesExstensionLibrary, acceder a las los detalles del Deployment Profile llamado custom_webcenter_spaces_war

  •  En File Groups -> Web Files -> Filters activar web.xml
    Activación del archivo web.xml
  • El archivo web.xml se verá en el proyecto y se desplegará con la librería extendida. Ahora podemos añadir / sobreescribir los parámetros de contexto o añadir servlets propios.
    web.xml solo con información extendida
Nota: Cuando se añaden tecnologias o dependencias al proyecto puede que el archivo web.xml se rellene con filtros e información sobrante. Se debe mantener este archivo limpio con sólo aquello nuevo / sobreescrito. En el caso de haber contenido extra en el web.xml puede que los ANT scripts de despliegue fallen a la hora de desplegar el código extendido. 

Versión WebCenter Portal 11.1.1.8
En esta versión de WebCenter Portal (renombrado Spaces a Portal). JDeveloper trae consigo su propia Aplicación y Proyecto para extender WebCenter Portal.

Para seguir desarrollando recursos de Portal como plantillas, estilo de páginas, plantillas de content presenter... La aplicación DesignWebCenterSpaces debe seguir siendo utilizada. Sin embargo, el proyecto WebCenterSpacesExstensionLibrary ya no se usa en esta versión para desplegar código.

En este caso debe crear una nueva aplicación usando la nueva plantilla de JDeveloper: WebCenter Portal Server Extension.

WebCenter Portal Server Extension

Esta plantilla generará dos proyectos (que podemos nombrar en la creación).
  • PortalExtension: Se usa para encapsular los Task Flow y código adicional.
  • PortalSharedLibrary: Actuará como WebCenterSpacesExtensionLibrary con la diferencia de que el manejo del versionado y el despliegue se realiza utilizando el asistente de despliegue de JDeveloper en lugar de los ANT Script que proporcionaba el anterior mecanismo.
Haciendo foco en PortalSharedLibrary se puede comprobar que solamente trae consigo el archivo MANIFEST.MF
MANIFEST.MF de la aplicación PortalSharedLibrary
¿Dónde se encuentran entonces weblogic.xml y web.xml?
Los archivos de configuración deben ser generados manualmente. Por ejemplo para generar el archivo weblogic.xml nada más que crear un nuevo WebLogic Deployment Descriptor.
Nuevo WebLogic Deployment Descriptor
weblogic.xml como nuevo descriptor
En caso de web.xml, usar el mismo procedimiento, pero creando un Java EE Deployment Descriptor.

Nuevo Java EE Deployment Descriptor
web.xml

Automáticamente los archivos web.xml y weblogic.xml formarán parte del despliegue de la librería extendida.

Al igual que ocurría con las versiones anteriores, se debe mantener web.xml con sólo la información añadida o sobrescrita.

Referencias: