Aquí tenemos algunos pantallazos de una aplicación OpenXava en el
Stringbeans
es un sistema portal compatible con el estandar JSR-168 que permite añadir
portlets que se encuentran en otros contextos del servidor de
aplicaciones. Para ello es requisito imprescindible que tanto el propio
contexto de Stringbeans, como el que contiene los portlets, sean
accesibles declarándolos en
./conf/server.xml como
crossContext="true"
. Por ejemplo:
server.xml
<Host appBase="webapps" autoDeploy="true" name="localhost"
unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
<Context path="/stringbeans"
docBase="stringbeans" crossContext="true" />
<Context path="/misportlets"
docBase="misportlets" crossContext="true" />
Vamos a aprovechar que estamos editando el fichero
server.xml
para incluir
emptySessionPath="true" en la sección del
conector. Ejemplo:
<Connector
acceptCount="100" connectionTimeout="20000"
disableUploadTimeout="true" enableLookups="false" maxSpareThreads="75"
maxThreads="150" minSpareThreads="25" port="8080" redirectPort="8443"
emptySessionPath="true"/>
Esto es necesario para que la sesión sea compartida entre los contextos de
Stringbeans y de nuestros portlets. Concretamente es requisito
imprescindible para la integración con portlets desarrollados con
OpenXava y que
funcionen correctamente los servlets de generación de reports PDF y CSV,
ya que de otra forma no serían capaces de obtener los valores del
tab
y se produciría una excepción.
Se deben
mover los siguientes .jar de
./stringbeans/WEB-INF/lib a un repositorio común de librerías compartidas
del servidor J2EE, en el caso de Tomcat a ./common/lib
- portlet.jar
- sb-containet.jar
- sb-share-common.jar
Se deben añadir las siguiente librerías (de Stringbeans) al contexto de
nuestra aplicación:
- sb-portal.jar
- sb-common.jar
- sb-portlet-common.jar (desde la versión 3.2)
- jaxb-api.jar
- jaxb-impl.jar
- jaxb-libs.jar
- namespace.jar
- relaxngDatatype.jar
- jax-qname.jar
- xsdlib.jar
Igualmente se debe añadir el fichero
portlet.tld a un
lugar que posteriormente referenciaremos en web.xml, por ejemplo en
./WEB-INF
En el fichero
web.xml del contexto de nuestra
aplicación, se deben añadir las siguientes entradas:
<servlet>
<servlet-name>PortletServlet</servlet-name>
<servlet-class>com.nabhinc.portal.core.PortletServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
:
:
<servlet-mapping>
<servlet-name>PortletServlet</servlet-name>
<url-pattern>/portlet_servlet</url-pattern>
</servlet-mapping>
<taglib>
<taglib-uri>http://java.sun.com/portlet</taglib-uri>
<taglib-location>/WEB-INF/portlet.tld</taglib-location>
</taglib>
Es importante indicar que éste servlet se cargue en el arranque (1)
ya que si no se carga antes que Stringbeans se producirá un error.
Finalmante en Stringbeans, entramos como administrador a la sección de
configuración del portal y de ahí a Portlet App Context. Como "Context
Path" ponemos nuestro contexto (ej: /misportlets) y como "Servlet URI"
indicamos "/portlet_servlet"
Si hemos seguido correctamente todos los pasos, Stringbeans indicará que
el contexto ha sido añadido correctamente y habrá añadido nuestra lista de
portlets a su fichero interno de portlets, de tal manera que desde
"Portlet Admin" los veremos listados y se podrá hacer uso de ellos.
*Nota: Si queremos clasificar los nuestros portlets, manualmente
debemos editar el fichero portlet.xml y en cada portlet añadir:
<portlet-info>
<title>Titulo del portlet</title>
<keywords>Categoria</keywords>
</portlet-info>
De esta forma, posteriormente en la selección de portlets que queremos
agregar a un layout, se mostrarán ordenados por categorías.
Referencias