| 14 de Septiembre de 2006 (Daniel P.) Introducción Este artículo muestra los distintos archivos de configuración necesarios para la migración entre una aplicación Struts a una aplicación JSR168. En este caso se ha desplegado sobre JetSpeed 2 y bajo Tomcat.(aunque se ha probado con vignette, también) Para leer este artículo se recomienda la lectura del artículo: Migración de una aplicación Struts a un Portlet JSR-168, en el contendor de portlets Jetspeed 2. Archivo porlet.xmlSe explicarán las distintas etiquetas y atributos que nos podemos encontrar dentro del archivo de configuración porlet.xml, lo que nos permitirá conocer la funcionalidad de este. Ejemplo del archivo porlet.xml: <?xml version="1.0" encoding="UTF-8"?><portlet-app id="asistenciaTecnica2" xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" version="1.0"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd
 http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd">
 <portlet id="AsistenciaTecnica2">
 <portlet-name>AsistenciaTecnica2</portlet-name>
 <portlet-class>org.apache.portals.bridges.struts.StrutsPortlet</portlet-class>
 <init-param>
 <name>ServletContextProvider</name>
 <value>org.apache.jetspeed.portlet.ServletContextProviderImpl </value>
 </init-param>
 <init-param>
 <name>ViewPage</name>
 <value>/Welcome.do</value>
 </init-param>
 <init-param>
 <name>HelpPage</name>
 <value>/help.shtml</value>
 </init-param>
 <!--  <expiration-cache>-1</expiration-cache> -->
 <supports>
 <mime-type>text/html</mime-type>
 <portlet-mode>VIEW</portlet-mode>
 <portlet-mode>HELP</portlet-mode>
 </supports>
 <portlet-info>
 <title>JPetstore</title>
 <keywords>Struts</keywords>
 </portlet-info>
 </portlet>
 
 
 
 
 Atributo EncodingEl encoding del documento debe ser UTF-8, si se utiliza otro puede presentar problemas como sucede en Vignette.
 
 Atributos de la etiqueta portlet-appid - Es el identificador de la aplicación que contiene al portlet, por lo tanto se debe de llamar igual que la aplicación (En Jetspeed parece ser necesario, en Vignette no hace falta pero funciona con su presencia).El resto de atributos parece que sin ellos funciona bien en Jetspeed, pero son necesarios para Vignette, por tanto siempre será mejor incluirlos.
 
 
 Etiqueta portletSe explicará los atributos de esta etiqueta y todas las etiquetas que están contenidas dentro de esta y las funciones que desempeñan.id - Es el identificador del portlet (se corresponderá con el portlet-name, parece ser necesario para Jetspeed, pero no para Vignette, pero funciona correctamente si está incluido).
 
 
 Etiqueta portlet-nameEl contenido de esta etiqueta será el nombre del portlet.
 
 Etiqueta portlet-classHace referencia al paquete y clase del portlet, en este caso es el bridge (es distinto si se trata de un portlet que se desplegará en Jetspeed o Vignette, ya que utilizan puentes distintos).
 
 1º etiqueta init-paramEsta etiqueta y su contenido son necesarios sólo para el caso de tratarse una aplicación Struts migrada a portlet. Esta contiene dos etiquetas :• name - Siempre tendrá el siguiente valor ServletContextProvider
 • value - Es la librería y clase que implementa (Se utilizan distintas clases si se trata de un portlet que se desplegará en Jetspeed o Vignette).
 
 
 2 ª y 3ª etiquetas inti-paramSon también necesarios solo para el caso de utilizar el bridge Struts-Portlet.Indica que actions de Struts son los responsables de los distintos tipos de visualización que tiene el portlet (View, Help, Edit, etc.).
 
 
 Etiqueta supportsEsta etiqueta contiene varias etiquetas:• mime-type es el tipo de la salida que nos proporciona el portlet, normalmente text/html.
 • portlet-mode indicará los modos que utiliza el portlet en este caso VIEW y HELP (puede presentar algún problema si no están escritos en mayúscula).
 
 
 Etiqueta portlet-infoEsta etiqueta contiene información sobre el portlet.Title - El título del portlet
 keyword - Palabras clave asociadas con el portlet, se separan entre comas “,”.
 
 
 Archivo struts-portlet-config.xmlLa función de este archivo es la de mapear los actions presentes en Struts con los tipos de url de los portlets.Ejemplo del Archivo struts-portlet-config.xml
 
 
<?xml version="1.0" encoding="UTF-8"?>Se deberá de introducir los actions de struts que serán la entrada de los modos del portlet. En el caso anterior (portlet.xml) tenemos el HELP y VIEW, en este caso en concreto sólo se ha mapeado el action correspondiente con el VIEW, faltaría incluir el del HELP.<config>
 <render-context>
 <attribute name="errors"/>
 <attribute name="message"/>
 </render-context>
 <portlet-url-type>
 <action path="/Welcome.do"/>
 </portlet-url-type>
 </config>
 
 
 asistenciaTecnica2.psmlEste es un archivo exclusivo para los portlet de Jetspeed y es el encargado de ubicar el portlet dentro de Jetspeed y de darle los permisos oportunos. El nombre de este se debe de corresponder con el nombre del portlet, en este caso asistenciaTecnica2.
 La ubicación de este será en \Apache Jetspeed 2.0\webapps\jetspeed\WEB-INF\pages
 
 Ejemplo archivo asistenciaTecnica2.psml
 
<page><defaults skin="orange" layout-decorator="tigris" portlet-decorator="tigris"/>
 <title>Asistencia Tecnica version 2</title>
 <metadata name="title" xml:lang="es">Asistencia Tecnica 2</metadata>
 <fragment id="asisTec2" type="layout" name="jetspeed-layouts::VelocityOneColumn">
 <fragment id="asisTec2-1" type="portlet" name="asistenciaTecnica2::AsistenciaTecnica2">
 </fragment>
 </fragment>
 <security-constraints>
 <security-constraints-ref>public-view</security-constraints-ref>
 </security-constraints>
 </page>
 Etiqueta titleSe corresponde con el título del portlet.
 Etiqueta metadata
…
Asistencia Tecnica 2
…
La etiqueta metadata contiene el nombre que aparecerá en el menú y en la barra de navegación. El atributo xml:lang indica para que idioma se mostrará el título, en este caso para el español.
 
 Etiqueta fragment
…asisTec2 y asisTec2-1 son los identificadores de la ventana y columna que contiene al Portlet.<fragment id="asisTec2" type="layout" name="jetspeed-layouts::VelocityOneColumn">
 <fragment id="asisTec2-1" type="portlet" name="asistenciaTecnica2::AsistenciaTecnica2">
 </fragment>
 </fragment>
 …
 
 jetspeed-layouts::VelocityOneColumn indica el modo de visualización en este caso es una columna, podría ser VelocityTwoColumns para indicar que se visualizan dos.
 
 En este caso la única columna contiene un Portlet llamado AsistenciaTecnica2 contenido en la aplicación asistenciaTecnica2 (estos deben coincidir con los introducidos en portlet.xml)
 
 public-view ? Indica la seguridad del portlet, en este caso es público y puede ser utilizado por todos los usuarios.
 |