Portlet- und PortletApplication-MBeans

Die MBeans des Typs "portlet" und "portletapplication" stellen Informationen über eine bestimmte Portletanwendung und ihre Portlets bereit. Mit einer MBean des Typs "portletapplication" können Sie eine Liste mit den Namen aller Portlets abrufen, die zu einer Portletanwendung gehören. Wenn Sie die MBean des Typs "portlet" mit einem bestimmten Portletnamen abfragen, können Sie portletspezifische Informationen von der MBean des Typs "portlet" abrufen.

Jede MBean, die einem Portlet oder einer Portletanwendung entspricht, ist anhand ihres Namens eindeutig identifizierbar. Für Portletanwendungen muss in der Datei portlet.xml kein Name definiert werden. Der MBean-Name für MBeans des Typs "portletapplication" ist der Name der EAR-Datei, gefolgt von "#" und dem Namen des Webmoduls, verkettet mit der Zeichenfolge "_portlet". MBeans des Typs "portletapplication" haben beispielsweise das folgende Format:
<EarFileName>#<Name_der_WAR-Datei>_portlet
Der ausgewählte Name für die MBean des Typs "portlet" ist der Name der MBean des Typs "portletapplication", zu der das Portlet gehört, verkettet mit dem Portletnamen:
<EarFileName>#<Name_der_WAR-Datei>_portlet.<Portletname>
Im Folgenden sehen Sie ein Beispiel für die erstellten PortletApplication-MBean- und Portletnamen:
EarName												SampleEar 
WebModule 											SampleWar.war 

Name der PortletApplication-MBean:	 	SampleEar#SampleWar_portlet
Portlet: 											SampleEar#SampleWar_portlet.BookmarkPortlet
Die MBean-Namen wurden gegenüber Version 6.1 geändert, weil die alten Namensmuster nicht eindeutig sind und unter bestimmten Bedingungen zu Problemen führen können. Wenn Sie sich auf das alte Namensmuster stützen, können Sie die angepasste Eigenschaft useShortMBeanNames für den Portletcontainer auf "true" setzen, um die zuvor bekannten MBean-Namen zu aktivieren. Da das alte Namensmuster Einfluss auf die Leistung hat, sollten Sie das alte Namensmuster nur dann aktivieren, wenn es unbedingt erforderlich ist.

Ein Punkt trennt den Webmodulnamen vom nachfolgenden Portletnamen. Weitere Informationen finden Sie in der API-Dokumentation zu MBeans des Typs "PortletApplication". Die generierte API-Dokumentation kann im Inhaltsverzeichnis des Information Center über den Pfad Referenz > Administrator > API-Dokumentation > MBean-Schnittstellen aufgerufen werden.

Das folgende Codebeispiel zeigt, wie die MBean des Typs portletapplication für eine Anwendung mit dem Namen "SampleWar" aufgerufen wird.
String myPortletApplicationName = "SampleEar#SampleWar_portlet";
Dieser Name besteht aus dem Namen der EAR-Datei, gefolgt von "#" und dem Namen des Webmoduls,
verkettet mit der Unterzeichenfolge "_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");
In diesem Beispiel wird der MBean-Server zuerst nach einer MBean des Typs "portletapplication" abgefragt. Wenn diese Abfrage erfolgreich ist, wird das Attribut "webApplicationContextRoot" von dieser MBean bzw. der ersten gefundenen MBean abgerufen und das Ergebnis in der Variablen "ctxRoot" gespeichert. Diese Variable enthält jetzt den Kontextstamm der Webanwendung, die die gesuchte Portletanwendung enthält. Die Variable gleicht "/bookmark".
Das nächste Codebeispiel veranschaulicht, wie die MBean des Typs portlet für ein Portlet mit dem Namen "BookmarkPortlet" aufgerufen wird.
String myPortletName = "SampleEar#SampleWar_portlet.BookmarkPortlet";
Dieser Name setzt sich aus dem Namen der MBean des Typs "portletapplication" und dem Portletnamen,
getrennt durch einen Punkt zusammen, da derselbe Portletname in unterschiedlichen
Webmodulen verwendet werden kann, aber innerhalb des Systems eindeutig sein muss.

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");
Die von der Methode getAttribute für die MBean zurückgegebene Ländereinstellung ist die für das Portlet definierte Standardländereinstellung.

Vollständiger Namen für MBeans vom Typ "Portlet" und "PortletApplication"

MBeans werden auch mit dem vollständig identifizierbaren Namen registriert:
<Anwendungsname>#<Name_der_WAR-Datei.war>_portlet.<Portletname> für die MBean "Portlet"
<Anwendungsname>#<Name_der_WAR-Datei.war>_portlet für die MBean "PortletApplication"
<..> wird durch die entsprechenden Anwendungsdaten ersetzt, z. B. SampleApplication#SamplePortlet.war_portlet.SamplePortlet. Sie können kurze MBean-Namen aktivieren, in dem Sie die angepasste Eigenschaft useShortMBeanNames des Portletcontainers auf "true" setzen.

Symbol, das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rport_mbeans
Dateiname:rport_mbeans.html