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:
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.
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.
Esta plantilla generará dos proyectos (que podemos nombrar en la creación).
¿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.
En caso de web.xml, usar el mismo procedimiento, pero creando un Java EE Deployment Descriptor.
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:
- 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.
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
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.
MANIFEST.MF de la aplicación PortalSharedLibrary |
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 |
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:
- Blog de Andrejus: WebCenter Portal 11.1.1.8 PortalExtension
- Documentación oficial de cómo extender WebCenter Portal 11.1.1.8
Hola Daniel,
ReplyDeleteQuiero modificar un fichero jsff via modificación del MDS. En concreto quiero añadir un taglib al jsff.
Leí que modificando el web.xml (via ExtendingSpaces) era posible añadir un taglib. ¿Pero como lo defino y referencio des del jsff para utilizarlo?
Muchas gracias
Un saludo
Hola.
ReplyDeleteTienes varias opciones.
Implementar la taglib en el propio proyecto de PortalExtension o crearte un Proyecto separado el cual luego incluiras como shared-lib usando el PortalExtension project.
Los steps que haria son:
- Crea tu taglib en un proyecto separado como JAR o ADF JAR Library separada.
- Crea una conexion en JDeveloper a tu JAR (usando el Resource Palette view) o Registra la Taglib en JDeveloper para poder usarla desde el catalogo.
- Anyade y prueba esta taglib en alguna app de ejemplo ADF o Framework Portal.
- Para Portal Builder. Despliega tu taglib como shared-lib para tenerla dentro del classpath the WebCenter Portal.
- En el caso de modificar el .jsff. Si se trata de un TF de producto usa el Projecto de Customizacion en el modo Customization Role y haz Drag & Drop de tu taglib en la .jsff que quieras (esto incluira la taglib en cabecera tb). Despliega el .MAR con las customizaciones y chequea que todo es correcto.
En principio en Portal Builder no necesitas registrar el .tld en el .web.xml. En caso de tener problemas y querer hacerlo genera un descriptor web.xml en el proyecto PortalSharedLibrary. Asegurate que ese web.xml solo tiene lo que quieras adherir a WebCenter Portal (sin basura por medio) y que forma parte del despliegue de la shared-lib de extension.
No se si me he explicado bien o resuelve tu duda.
Un saludo.
Hola Daniel,
DeleteMuchas gracias por tu respuesta tan rápida. Concreto el problema:
Estoy modificando un jsff standard de WC Spaces. En concreto, quiero añadir la taglib http://java.sun.com/jsp/jstl/functions en un jsff que no la tiene.
Tengo el proyecto de customization funcionando (arranco con Role Developer), modifico el .jsff, genero el metadata.mar, lo desplego y funciona ok.
He intentado añadir la taglib en el jsp:root pero no hay manera.
Con tus indicaciones, ahora he intentado hacer drag&drop de la library (activo show libraries a nivel de Application) pero no hay manera.
Que me falta para poder hacer drag & drop de la taglib?
Muchas gracias
Hola.
DeleteEstuve probando y revisando también internamente como MDS genera las customizaciones. MDS no entiende del JSP:Root asi que el approach que te di no era valido del todo.
Nosotros una vez hicimos el cambio manual de la propia libreria de producto para incluir la taglib (cosa no soportada por Oracle, obviamente).
Ya vi que publicaste la pregunta en OTN, te di otra sugerencia alli. En vez de usar una taglib create tu propio Helper Backing Bean para ello.
Un saludo.
Hola,
DeleteTienes algun ejemplo o referencia?
Muchas gracias