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.
<nombre_archivo_Ear>#<nombre_archivo_War>_portletEl 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>
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,
.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".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
<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.