Класс MBeanServerFactory
public class MBeanServerFactory extends Object
Предоставляет ссылки на серверы MBean. Экземпляры этого класса отсутствуют.
Начиная с JMX 1.2 этот класс позволяет заменять реализацию MBeanServer по умолчанию. Для этого используется класс MBeanServerBuilder. Класс первоначального MBeanServerBuilder, который должен быть создан, можно указать с помощью системного свойства javax.management.builder.initial. Указанный класс должен быть общедоступным подклассом MBeanServerBuilder и иметь общедоступный конструктор без параметров.
По умолчанию, если значение этого свойства не указано, создается экземпляр javax.management.MBeanServerBuilder. В противном случае MBeanServerFactory пытается загрузить указанный класс с помощью Thread.currentThread().getContextClassLoader() или, если он равен null, с помощью Class.forName(). Затем создается исходный экземпляр этого класса с помощью Class.newInstance(). Если во время этого процесса возникает любое проверяемое исключение (например, ClassNotFoundException, InstantiationException), MBeanServerFactory передает это исключение внутри RuntimeException.
При каждом создании нового MBeanServer проверяется системное свойство javax.management.builder.initial и загружается указанный в нем класс. Если этот класс отличается от класса текущего MBeanServerBuilder, создается новый MBeanServerBuilder. В противном случае MBeanServerFactory может создать новый MBeanServerBuilder или повторно использовать текущий.
Если класс, указанный в свойстве, невозможно загрузить или он не является допустимым подклассом MBeanServerBuilder, передается исключение, и создать MBeanServer будет невозможно, пока системному свойству javax.management.builder.initial не будет присвоено допустимое значение.
MBeanServerBuilder позволяет оборачивать MBeanServer, возвращаемые реализацией MBeanServerBuilder по умолчанию, например, для добавления дополнительного уровня безопасности.
- Начиная с версии:
- 1.5
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static MBeanServer |
createMBeanServer() |
Возвращает новый объект, реализующий интерфейс MBeanServer, со стандартным доменным именем по умолчанию. |
static MBeanServer |
createMBeanServer |
Возвращает новый объект, реализующий интерфейс MBeanServer, с указанным доменным именем по умолчанию. |
static ArrayList |
findMBeanServer |
Возвращает список зарегистрированных объектов MBeanServer. |
static ClassLoaderRepository |
getClassLoaderRepository |
Возвращает ClassLoaderRepository, используемый указанным MBeanServer. |
static MBeanServer |
newMBeanServer() |
Возвращает новый объект, реализующий интерфейс MBeanServer, со стандартным доменным именем по умолчанию, не сохраняя внутреннюю ссылку на этот новый объект. |
static MBeanServer |
newMBeanServer |
Возвращает новый объект, реализующий интерфейс MBeanServer, с указанным доменным именем по умолчанию, не сохраняя внутреннюю ссылку на этот новый объект. |
static void |
releaseMBeanServer |
Удаляет внутренние ссылки MBeanServerFactory на созданный MBeanServer. |
Подробное описание методов
releaseMBeanServer
public static void releaseMBeanServer(MBeanServer mbeanServer)
- Параметры:
-
mbeanServer— объект MBeanServer, который нужно удалить. - Исключения:
-
IllegalArgumentException— еслиmbeanServerне был создан одним из методовcreateMBeanServerили если для него уже был вызванreleaseMBeanServer.
createMBeanServer
public static MBeanServer createMBeanServer()
Возвращает новый объект, реализующий интерфейс MBeanServer, со стандартным доменным именем по умолчанию. Доменное имя по умолчанию используется в качестве доменной части ObjectName управляемых компонентов MBean, если домен, указанный пользователем, равен null.
Стандартное доменное имя по умолчанию — DefaultDomain.
Ссылка на MBeanServer сохраняется внутри. Это позволяет findMBeanServer возвращать ссылку на этот объект MBeanServer.
Этот метод эквивалентен createMBeanServer(null).
- Возвращает:
- вновь созданный MBeanServer.
- Исключения:
-
JMRuntimeException— если свойствоjavax.management.builder.initialсуществует, но указанный в нем класс невозможно создать с помощью общедоступного конструктора без параметров; или если созданный экземпляр построителя возвращает null из методовnewMBeanServerDelegateилиnewMBeanServer. -
ClassCastException— если свойствоjavax.management.builder.initialсуществует и его значение можно использовать для создания экземпляра, но этот класс не совместим по присваиванию сMBeanServerBuilder.
createMBeanServer
public static MBeanServer createMBeanServer(String domain)
Возвращает новый объект, реализующий интерфейс MBeanServer, с указанным доменным именем по умолчанию. Указанное доменное имя используется в качестве доменной части ObjectName управляемых компонентов MBean, если домен, указанный пользователем, равен null.
Ссылка на MBeanServer сохраняется внутри. Это позволяет findMBeanServer возвращать ссылку на этот объект MBeanServer.
- Параметры:
-
domain— доменное имя по умолчанию для созданного MBeanServer. Это значение будет возвращено методомMBeanServer.getDefaultDomain(). - Возвращает:
- вновь созданный MBeanServer.
- Исключения:
-
JMRuntimeException— если свойствоjavax.management.builder.initialсуществует, но указанный в нем класс невозможно создать с помощью общедоступного конструктора без параметров; или если созданный экземпляр построителя возвращает null из методовnewMBeanServerDelegateилиnewMBeanServer. -
ClassCastException— если свойствоjavax.management.builder.initialсуществует и его значение можно использовать для создания экземпляра, но этот класс не совместим по присваиванию сMBeanServerBuilder.
newMBeanServer
public static MBeanServer newMBeanServer()
Возвращает новый объект, реализующий интерфейс MBeanServer, со стандартным доменным именем по умолчанию, не сохраняя внутреннюю ссылку на этот новый объект. Доменное имя по умолчанию используется в качестве доменной части ObjectName управляемых компонентов MBean, если домен, указанный пользователем, равен null.
Стандартное доменное имя по умолчанию — DefaultDomain.
Ссылка не сохраняется. findMBeanServer не сможет вернуть ссылку на этот объект MBeanServer, однако сборщик мусора сможет удалить объект MBeanServer, когда на него больше не будет ссылок.
Этот метод эквивалентен newMBeanServer(null).
- Возвращает:
- вновь созданный MBeanServer.
- Исключения:
-
JMRuntimeException— если свойствоjavax.management.builder.initialсуществует, но указанный в нем класс невозможно создать с помощью общедоступного конструктора без параметров; или если созданный экземпляр построителя возвращает null из методовnewMBeanServerDelegateилиnewMBeanServer. -
ClassCastException— если свойствоjavax.management.builder.initialсуществует и его значение можно использовать для создания экземпляра, но этот класс не совместим по присваиванию сMBeanServerBuilder.
newMBeanServer
public static MBeanServer newMBeanServer(String domain)
Возвращает новый объект, реализующий интерфейс MBeanServer, с указанным доменным именем по умолчанию, не сохраняя внутреннюю ссылку на этот новый объект. Указанное доменное имя используется в качестве доменной части ObjectName управляемых компонентов MBean, если домен, указанный пользователем, равен null.
Ссылка не сохраняется. findMBeanServer не сможет вернуть ссылку на этот объект MBeanServer, однако сборщик мусора сможет удалить объект MBeanServer, когда на него больше не будет ссылок.
- Параметры:
-
domain— доменное имя по умолчанию для созданного MBeanServer. Это значение будет возвращено методомMBeanServer.getDefaultDomain(). - Возвращает:
- вновь созданный MBeanServer.
- Исключения:
-
JMRuntimeException— если свойствоjavax.management.builder.initialсуществует, но указанный в нем класс невозможно создать с помощью общедоступного конструктора без параметров; или если созданный экземпляр построителя возвращает null из методовnewMBeanServerDelegateилиnewMBeanServer. -
ClassCastException— если свойствоjavax.management.builder.initialсуществует и его значение можно использовать для создания экземпляра, но этот класс не совместим по присваиванию сMBeanServerBuilder.
findMBeanServer
public static ArrayList<MBeanServer> findMBeanServer(String agentId)
Возвращает список зарегистрированных объектов MBeanServer. Зарегистрированным считается объект MBeanServer, созданный одним из методов createMBeanServer и впоследствии не освобожденный с помощью releaseMBeanServer.
- Параметры:
-
agentId— идентификатор агента MBeanServer, который требуется получить. Если этот параметр равен null, возвращаются все зарегистрированные MBeanServer в данной JVM. В противном случае возвращаются только те MBeanServer, идентификатор которых равенagentId. Идентификатор MBeanServer — это атрибутMBeanServerIdего MBean-делегата. - Возвращает:
- Список объектов MBeanServer.
getClassLoaderRepository
public static ClassLoaderRepository getClassLoaderRepository(MBeanServer server)
server.getClassLoaderRepository().- Параметры:
-
server— проверяемый MBeanServer. Начиная с JMX 1.2, еслиserverравенnull, результатом будетNullPointerException. Это поведение отличается от реализованного в JMX 1.1, где возможность использоватьnullбыла объявлена устаревшей. - Возвращает:
- Репозиторий загрузчиков классов, используемый указанным MBeanServer.
- Исключения:
-
NullPointerException— еслиserverравен null.
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.management/javax/management/MBeanServerFactory.html