Los MBeans Portlet y PortletApplication

Los MBeans del tipo portlet y portletapplication proporcionan información acerca de una aplicación de portlet determinada y sus portlets. A través del MBean del tipo portletapplication, puede recuperar una lista de nombres de todos los portlets que pertenecen a una aplicación de portlet. Al consultar el MBean del portlet de tipo con un nombre de portlet concreto, puede recuperar información específica del portlet desde el MBean del portlet de tipo.

Cada MBean que se corresponde con un portlet o aplicación de portlet se identifica exclusivamente mediante su nombre. No es necesario que las aplicaciones de portlet tengan un conjunto de nombres establecido en portlet.xml. El nombre de MBean para los MBeans del tipo portletapplication es el nombre del archivo de archivado empresarial (EAR) seguido por "#" y el nombre de módulo web concatenado con la serie "_portlet". Por ejemplo, los MBean de tipo portletapplication tiene el formato siguiente:
<nombre_archivo_Ear>#<nombre_archivo_War>_portlet
El nombre elegido para el MBean de tipo portlet es el nombre del MBean de tipo portletapplication al que pertenece el portlet, concatenado con el nombre de portlet:
<nombre_archivo_Ear>#<nombre_archivo_War>_portlet.<nombre_portlet>
A continuación se muestra un ejemplo del nombre del MBean PortletApplication resultante y los nombres de portlet:
EarName												SampleEar 
WebModule 											SampleWar.war 

PortletApplication MBean name:	 	SampleEar#SampleWar_portlet
Portlet: 											SampleEar#SampleWar_portlet.BookmarkPortlet
Los nombres de MBean se han cambiado en relación con la versión 6.1, ya que el patrón anterior de nombres no era exclusivo y podría provocar problemas en circunstancias determinadas. Si se basa en el patrón anterior de nomenclatura, puede establecer la propiedad personalizada de contenedor de portlet, useShortMBeanNames, en true para activar los nombres de MBean anteriormente conocidos. Como esto afecta al rendimiento, es posible que no quiera activar el patrón antiguo de nombres, si no es estrictamente necesario.

Un punto separa el nombre de módulo web anterior del nombre de portlet. Para obtener información adicional, consulte la documentación de Portlet y MBean de PortletApplication tipo API. La documentación de la API generada está disponible en la tabla del centro de información de contenido desde la vía de acceso, Referencia > Administrador > Documentación de API > Interfaces de MBean.

El código siguiente es un ejemplo de cómo se invoca el MBean del tipo portletapplication para una aplicación con el nombre, SampleWar.
String myPortletApplicationName = "SampleEar#SampleWar_portlet";
Este nombre está compuesto del nombre del archivo Ear seguido de "#" y el nombre de módulo web concatenado con la subserie "_portlet"

com.ibm.websphere.management.AdminService adminService =
				com.ibm.websphere.management.AdminServiceFactory.getAdminService();
javax.management.ObjectName on = 
		new ObjectName("WebSphere:type=PortletApplication,name=" + myPortletApplicationName + ",*");

Iterator onIter = adminService.queryNames(on, null).iterator();
while(onIter.hasNext()) 
{
		on = (ObjectName)onIter.next();
}
    
String ctxRoot = (java.lang.String)adminService.getAttribute(on, "webApplicationContextRoot");
En el ejemplo anterior, se consulta en primer lugar el MBeanServer para un MBean de tipo portletapplication. Si esta consulta es correcta, el atributo webApplicationContextRoot se recupera en dicho MBean o el primer MBean que se encuentre. El resultado se almacena en la variable ctxRoot. Esta variable ahora contiene la raíz de contexto de la aplicación web que contiene la aplicación de portlet que se ha buscado. La variable es parecida a "/bookmark".
El ejemplo de código siguiente demuestra cómo invocar el MBean de tipo portlet para un portlet con el nombre, BookmarkPortlet.
String myPortletName = "SampleEar#SampleWar_portlet.BookmarkPortlet";
Este nombre consta del nombre del MBean de tipo portletapplication y el
nombre del portlet, separado por un punto porque es posible que se utilice el mismo nombre de portlet 
dentro de distintos módulos web, pero debe ser exclusivo dentro del sistema.

com.ibm.websphere.management.AdminService adminService =
				com.ibm.websphere.management.AdminServiceFactory.getAdminService();
javax.management.ObjectName on = 
				new ObjectName("WebSphere:type=Portlet,name=" + myPortletName + ",*");

Iterator iter = adminService.queryNames(on, null).iterator();

while(iter.hasNext())
{ 
		on = (ObjectName)iter.next;
}
        
java.util.Locale locale = (java.util.Locale) adminService.getAttribute(on, "defaultLocale");
El entorno local devuelto por el método getAttribute para el MBean es el entorno local predeterminado definido para este portlet.

Nombres completos para los MBean Portlet y PortletApplication

Los MBeans también se registran por su nombre completo identificable:
<nombre_aplicación>#<nombre_archivo_WAR.war>_portlet.<nombre_portlet> para MBean de Portlet
<nombre_aplicación>#<nombre_archivo_WAR.war>_portlet para el MBean PortletApplication
donde <..> se sustituye por los datos de aplicación correspondientes. Por ejemplo, SampleApplication#SamplePortlet.war_portlet.SamplePortlet. Puede habilitar los nombres MBean cortos mediante el establecimiento de la propiedad personalizada de contenedor de portlet useShortMBeanNames en el valor true.

Icon that indicates the type of topic Reference topic



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