Registrierte oder instanziierte MBeans und MXBeans erkennen

In Java 8 wurde das Verhalten in Bezug auf die Sichtbarkeitsanforderungen für Schnittstellen, die zum Erstellen von MBeans oder MXBeans verwendet werden, geändert. Alle MBean- und MXBean-Schnittstellen müssen öffentlich sein. Vor Java 8 wurden nicht öffentliche Schnittstellen zugelassen, obwohl sie laut Spezifikation öffentlich sein müssen.

Durch Setzen der Systemeigenschaft jdk.jmx.mbeans.allowNonPublic wird das Managementsubsystem auf das alte Verhalten zurückgesetzt, das die Verwendung nicht öffentlicher Managementschnittstellen zulässt. Diese Eigenschaft ist als Übergangslösung bestimmt und wird möglicherweise in einem der nachfolgenden Releases entfernt.

Da die Verwendung von MBean am Ende des MBean-Schnittstellennamens eher eine Konvention als eine Voraussetzung ist, werden auch alle Aufrufe der Methoden MBeanServer registerMBean und createMBean gekennzeichnet, um diesen Unterschied in Java 8 beim Erstellen von Management-Beans hervorzuheben. Wenn Ihre Management-Bean-Schnittstellen den zuvor aufgelisteten Konventionen nicht entsprechen, prüfen Sie manuell, ob öffentliche (public) Schnittstellen verwendet werden.

Weitere Informationen finden Sie in der Java-Dokumentation zum Paket javax.management.