Visión general de la tarea: gestión de portlets

Puede utilizar este método para gestionar aplicaciones de portlets desplegadas.

Antes de empezar

Antes de empezar esta tarea, la aplicación de portlet debe estar instalada. Consulte Instalación de archivos de aplicación empresarial para obtener información adicional.

Acerca de esta tarea

Puede efectuar los pasos siguientes para gestionar portlets.

Procedimiento

Ejemplo

Un método bean asíncrono puede utilizar las conexiones que el componente Java Platform, Enterprise Edition (Java EE) creador ha obtenido mediante referencias de recursos java:comp.

Utilización de la biblioteca de códigos de agregación de portlets. Puede utilizar la biblioteca de códigos de agregación para agregar varios portlets de modo que tengan múltiples contenidos diferentes en una página. La biblioteca la pueden utilizar todos los archivos JSP (JavaServer Pages) incluidos por un servlet.

Para utilizar la biblioteca de códigos de agregación de portlets, debe declarar tag-lib al comienzo del archivo JSP, utilizando <%@ taglib uri="http://ibm.com/portlet/aggregation" prefix="portlet" %>, como se muestra en el ejemplo siguiente. El siguiente archivo JSP de ejemplo muestra cómo se agregan portlets a una página.

Puede utilizar la biblioteca de códigos de agregación para agregar varios portlets de modo que tengan múltiples contenidos diferentes en una página. La biblioteca la pueden utilizar todos los archivos JSP (JavaServer Pages) incluidos por un servlet.
class GoodAsynchBean
{
	DataSource ds;
	public GoodAsynchBean()
		throws NamingException
	{
		// Es correcto almacenar en la memoria caché una fábrica de conexiones o un origen de datos
		// como datos de instancia de clase.
		InitialContext ic = new InitialContext(); 
				// se presupone que el componente Java EE creado tiene esta
		// referencia de recursos definida en el descriptor de despliegue.
		ds = (DataSource)ic.lookup("java:comp/env/jdbc/myDataSource");
	}
	// Cuando se llame al método de bean asíncrono, obtenga una conexión,
	//  utilícela y ciérrela.
	void anEventListener()
	{
		Connection c = null;
		try
		{
			c = ds.getConnection();
			// utilice la conexión ahora...
		}
		finally
		{
			if(c != null) c.close();
		}
	}
}

En el ejemplo siguiente se muestra un bean asíncrono que utiliza las conexiones incorrectamente:

class BadAsynchBean
{
	DataSource ds;
	// No haga esto. No puede almacenar en memoria caché conexiones entre llamadas de método asíncrono
	Connection c;

	public BadAsynchBean()
		throws NamingException
	{
		// Es correcto almacenar en la memoria caché una fábrica de conexiones o un origen de datos como
		// datos de instancia de clase.
		InitialContext ic = new InitialContext(); 
		ds = (DataSource)ic.lookup("java:comp/env/jdbc/myDataSource");
		// incumplimiento de las reglass...
		c = ds.getConnection();
	}
	// Cuando se llame al método asíncrono, utilice sin permiso la conexión en
	// y probablemente verá excepciones relativas a J2C durante la ejecución.
	// ciérrela.
	void someAsynchMethod()
	{
		// utilice la conexión ahora...
	}
}

Configuración del descriptor de despliegue de portlet ampliado para inhabilitar PortletServingServlet. El servicio de URL de portlet soporte el acceso directo a todas las funciones y estados de un portlet al crear los URL adecuados. Se considera un riesgo de seguridad en una configuración de producción donde se da servicio al portlet a través de una aplicación de portal de empresa que se aplica a su propio control de acceso. Al establecer la propiedad portletServingEnabled en false, un administrador puede asegurar que nunca se accede a un portlet importante mediante el servicio de URL directo.

Las extensiones del descriptor de despliegue de portlets se definen en un archivo denominado ibm-portlet-ext.xmi. Este descriptor de despliegue es un descriptor opcional que puede utilizar para configurar las extensiones de WebSphere para la aplicación de portlet y sus portlets. Por ejemplo, puede inhabilitar el servlet PortletServingServlet para la aplicación de portlet en el descriptor de despliegue de portlets ampliado.

El archivo de extensión ibm-portlet-ext.xmi se carga durante el arranque de la aplicación. Si no se especifican archivos de extensión con este valor, se utilizan los valores predeterminados del contenedor de portlet.

El valor por omisión del atributo portletServingEnabled es true. El siguiente es un ejemplo de cómo realizar la configuración de la aplicación de modo que no se cree un servlet PortletServingServlet para ningún portlet en la aplicación de portlet.

<?xml version="1.0" encoding="UTF-8"?>
<portletappext:PortletApplicationExtension xmi:version="1.0"
    xmlns:xmi="http://www.omg.org/XMI"
    xmlns:portletappext="portletapplicationext.xmi"
    xmlns:portletapplication="portletapplication.xmi"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmi:id="PortletApp_ID_Ext"
    portletServingEnabled="false">
  <portletappext:portletApplication href="WEB-INF/portlet.xml#myPortletApp"/>
</portletappext:PortletApplicationExtension>

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tport_portlets
File name: tport_portlets.html