¿Cómo desplegar Portlets de Spring en Oracle Webcenter 11g?


En alguna ocasión se nos pidió desplegar un Portlet construido con Spring (con herramientas de IBM) sobre el Container de Portlets de Oracle Webcenter, para después ser consumido desde una Página de mismo Webcenter Portal.
El Portlet se había había desplegado , primero, sobre el IBM Websphere Portal. La prueba consistía en validar si el Portlet era lo suficientemente estándar, para desplegarse sobre otro Portlet Container.
Las imágenes , en algunos casos, tienen algunas variantes, pues estamos ocultando todo lo referente a nombres del cliente.
Lo que se hizo fue lo siguiente. Puede ser que les sea útil si están en situaciones similares:

1. El paquete de código que representa al Portlet y que se nos compartió tenía una estructura de Eclipse, lo único que se hizo fue homologarla a la que JDeveloper 11g ocupa. Quedando de la siguiente manera:
a. Existe una Carpeta que le llamamos TestPortlet4 debajo de la cual está un subfolder con el mismo nombre que representa realmente al Proyecto, y un archivo que representa a la Aplicación en JDeveloper:clip_image002
b. En la carpeta de Proyecto se tiene:
 clip_image004

c. Básicamente está el código fuente de los paquetes abajo del folder src, se tiene todo lo relacionado a web abajo del public_html, en el folder deploy se tiene el WAR que representa al Portlet, y finalmente classes que es la compilación.
d. Ya en el IDE se ve de la siguiente manera, se puede ver el título de la Aplicación como "TestPortlet4", así como el del Projecto "TestPortlet4":clip_image006
2. Una vez que se tuvo el código listo en JDeveloper se hicieron un par de adecuaciones para que el Portlet pudiera vivir en Weblogic, básicamente estamos hablando de los Taglibs que nos dimos cuenta utiliza el Portlet creado con las herramientas de IBM, y esto lo encontramos en el archivo TestPortletView.jsp:
clip_image008
Ésto nos dimos cuenta que es específico para Portlets de IBM, por lo que lo quitamos, dejando al JSP de la siguiente manera:clip_image010
Es decir, ya sin la declaración de las Taglibs. El resto del JSP quedó idéntico
3. Posteriormente compilamos y desplegamos el Portlet, pero al hacer ésto nos salió un error de compilación de Spring, fue el siguiente: clip_image012
Esto provocó que tuviéramos que editar el archivo applicationContext.xml y comentar las líneas:
clip_image014

4. Con este cambio el Portlet ya no tuvo problemas para desplegarse.
5. Una vez desplegado, queda de la siguiente manera sobre Weblogic:
6. Genera una URL de información del Portlet (http://11.1.1.2:8889/Test/info):
clip_image016

7. Después damos click en WSR v2 WSDL, y nos lleva al WSDL del Portlet: clip_image018
Hasta aquí llevamos lo necesario para que el Portlet esté desplegado ya en Weblogic/Webcenter. Lo que sigue es poderlo consumir desde un Portal Webcenter, para lo cual se deben realizar lo siguientes pasos:
8. Posteriormente debemos crear un Webcenter Portal Application desde Jdeveloper:
 clip_image020

9. Esto nos saca un Wizard en dónde simplemente hay que dar Next a todos los pasos. El resultado de esto es un Proyecto de JDeveloper listo para crear una Aplicación de Portal, se generan dos Proyectos:
a. Portal: Aquí están todos los Artefactos del Portal a crear, como pueden ser las páginas JSF, algunas clases que se ocupen, hojas de estilo, etc.
b. PortalWebAssets: Aquí se sugiere poner imágenes, y algunos contenidos estáticos
10. Posteriormente lo que se hace es registrar el Portlet que ya tenemos publicado. Sólo nos pide la URL del WSDL: clip_image022
11. Ya con el Portlet Registrado, te lo deja en tus Application Resources del Proyecto:clip_image024
12. En el Proyecto Portal que se generó previamente, vas a tener una página home por default en dónde se puede incorporar el Portlet . En esta página home, simplemente arrastramos el Portlet y ya estará listo para ejecutarse:clip_image026