Класс MBeanServerFactory
public class MBeanServerFactory extends Object
Предоставляет ссылки на серверы MBean. Экземпляры этого класса отсутствуют.
Начиная с JMX 1.2, этот класс позволяет заменить реализацию сервера MBean по умолчанию. Это делается с помощью класса MBeanServerBuilder. Класс начального экземпляра MBeanServerBuilder можно указать с помощью системной переменной среды javax.management.builder.initial. Указанный класс должен быть публичным подклассом MBeanServerBuilder и должен иметь публичный пустой конструктор.
По умолчанию, если значение этой переменной не указано, создается экземпляр javax.management.MBeanServerBuilder. В противном случае, MBeanServerFactory пытается загрузить указанный класс, используя Thread.currentThread().getContextClassLoader(), или, если он null, Class.forName(). Затем он создает начальный экземпляр этого класса с помощью Class.newInstance(). Если при этом процессе возникает какое-либо проверочное исключение (например, ClassNotFoundException, InstantiationException), MBeanServerFactory будет распространять это исключение изнутри RuntimeException.
Системная переменная среды javax.management.builder.initial проверяется каждый раз, когда требуется создать новый сервер MBean, и загружается класс, на который она ссылается. Если этот класс отличается от класса текущего MBeanServerBuilder, создается новый MBeanServerBuilder. В противном случае, MBeanServerFactory может создать новый MBeanServerBuilder или повторно использовать текущий.
Если класс, на который ссылается переменная, не может быть загружен или не соответствует допустимому подклассу MBeanServerBuilder, то исключение распространяется, и сервер MBean не может быть создан до тех пор, пока системная переменная javax.management.builder.initial не будет переопределена на допустимое значение.
MBeanServerBuilder позволяет оборачивать серверы MBean, возвращаемые реализацией сервера MBean по умолчанию, например, для добавления дополнительного уровня безопасности.
- Since:
- 1.5
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static MBeanServer |
createMBeanServer() |
Возвращает новый объект, реализующий интерфейс MBeanServer с стандартным именем области по умолчанию. |
static MBeanServer |
createMBeanServer |
Возвращает новый объект, реализующий интерфейс MBeanServer с указанным именем области по умолчанию. |
static ArrayList |
findMBeanServer |
Возвращает список зарегистрированных объектов MBeanServer. |
static ClassLoaderRepository |
getClassLoaderRepository |
Возвращает ClassLoaderRepository, используемый данным сервером MBean. |
static MBeanServer |
newMBeanServer() |
Возвращает новый объект, реализующий интерфейс MBeanServer с стандартным именем области по умолчанию, не сохраняя внутреннюю ссылку на этот новый объект. |
static MBeanServer |
newMBeanServer |
Возвращает новый объект, реализующий интерфейс MBeanServer с указанным именем области по умолчанию, не сохраняя внутреннюю ссылку на этот новый объект. |
static void |
releaseMBeanServer |
Удаляет внутренние ссылки MBeanServerFactory на созданный сервер MBean. |
Подробное описание методов
releaseMBeanServer
public static void releaseMBeanServer(MBeanServer mbeanServer)
- Параметры:
-
mbeanServer- объект MBeanServer, который нужно удалить. - Исключения:
-
IllegalArgumentException- еслиmbeanServerбыл не создан одним из методовcreateMBeanServer, или если методreleaseMBeanServerуже был вызван для него. -
SecurityException- если есть SecurityManager и разрешения вызывающего не включают или не подразумевают.MBeanServerPermission("releaseMBeanServer")
createMBeanServer
public static MBeanServer createMBeanServer()
Возвращает новый объект, реализующий интерфейс MBeanServer, со стандартным именем области по умолчанию. Имя области по умолчанию используется как часть имени объекта MBean, когда пользовательская область не указана.
Стандартное имя области по умолчанию — DefaultDomain.
Ссылка на MBeanServer сохраняется внутри. Это позволит findMBeanServer возвращать ссылку на этот объект MBeanServer.
Этот метод эквивалентен createMBeanServer(null).
- Возвращает:
- новосозданный MBeanServer.
- Исключения:
-
SecurityException- если есть SecurityManager и разрешения вызывающего не включают или не подразумевают.MBeanServerPermission("createMBeanServer") -
JMRuntimeException- если свойствоjavax.management.builder.initialсуществует, но класс, который он задает, нельзя создать через публичный конструктор без аргументов; или если созданный билдер возвращает null из методаnewMBeanServerDelegateилиnewMBeanServer. -
ClassCastException- если свойствоjavax.management.builder.initialсуществует и может быть создано, но не совместимо для присваивания сMBeanServerBuilder.
createMBeanServer
public static MBeanServer createMBeanServer(String domain)
Возвращает новый объект, реализующий интерфейс MBeanServer, с указанным именем области по умолчанию. Указанное имя области используется как часть имени объекта MBean, когда пользовательская область не указана.
Ссылка на MBeanServer сохраняется внутри. Это позволит findMBeanServer возвращать ссылку на этот объект MBeanServer.
- Параметры:
-
domain- имя области по умолчанию для созданного MBeanServer. Это значение, которое будет возвращено методомMBeanServer.getDefaultDomain(). - Возвращает:
- новосозданный MBeanServer.
- Исключения:
-
SecurityException- если есть SecurityManager и разрешения вызывающего не включают или не подразумевают.MBeanServerPermission("createMBeanServer") -
JMRuntimeException- если свойствоjavax.management.builder.initialсуществует, но класс, который он задает, нельзя создать через публичный конструктор без аргументов; или если созданный билдер возвращает null из методаnewMBeanServerDelegateилиnewMBeanServer. -
ClassCastException- если свойствоjavax.management.builder.initialсуществует и может быть создано, но не совместимо для присваивания сMBeanServerBuilder.
newMBeanServer
public static MBeanServer newMBeanServer()
Возвращает новый объект, реализующий интерфейс MBeanServer, со стандартным именем области по умолчанию, без сохранения внутренней ссылки на этот новый объект. Имя области по умолчанию используется как часть имени объекта MBean, когда пользовательская область не указана.
Стандартное имя области по умолчанию — DefaultDomain.
Ссылка не сохраняется. findMBeanServer не сможет вернуть ссылку на этот объект MBeanServer, но сборщик мусора сможет удалить объект MBeanServer, когда он больше не будет ссылаться.
Этот метод эквивалентен newMBeanServer(null).
- Возвращает:
- новосозданный MBeanServer.
- Исключения:
-
SecurityException- если есть SecurityManager и разрешения вызывающего не включают или не подразумевают.MBeanServerPermission("newMBeanServer") -
JMRuntimeException- если свойствоjavax.management.builder.initialсуществует, но класс, который он задаёт, нельзя создать через публичный конструктор без аргументов; или если созданный билдер возвращает null из методаnewMBeanServerDelegateилиnewMBeanServer. -
ClassCastException- если свойствоjavax.management.builder.initialсуществует и может быть создано, но не совместимо для присваивания сMBeanServerBuilder.
newMBeanServer
public static MBeanServer newMBeanServer(String domain)
Возвращает новый объект, реализующий интерфейс MBeanServer с указанным именем области по умолчанию, без сохранения внутренней ссылки на этот новый объект. Указанное имя области используется как часть имени объекта MBean, когда пользовательская область не указана.
Ссылка не сохраняется. findMBeanServer не сможет вернуть ссылку на этот объект MBeanServer, но сборщик мусора сможет удалить объект MBeanServer, когда он больше не будет ссылаться.
- Параметры:
-
domain- имя области по умолчанию для созданного MBeanServer. Это значение, которое будет возвращено методомMBeanServer.getDefaultDomain(). - Возвращает:
- новосозданный MBeanServer.
- Исключения:
-
SecurityException- если есть SecurityManager и разрешения вызывающего не включают или не подразумевают.MBeanServerPermission("newMBeanServer") -
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.
- Исключения:
-
SecurityException- если есть SecurityManager и разрешения вызывающего не включают или не подразумевают.MBeanServerPermission("findMBeanServer")
getClassLoaderRepository
public static ClassLoaderRepository getClassLoaderRepository(MBeanServer server)
server.getClassLoaderRepository().- Параметры:
-
server- MBeanServer, подлежащий исследованию. Начиная с JMX 1.2, еслиserverравенnull, результатом являетсяNullPointerException. Это поведение отличается от того, что было реализовано в JMX 1.1, где возможность использованияnullбыла устаревшей. - Возвращает:
- Class Loader Repository, используемый данным MBeanServer.
- Исключения:
-
SecurityException- если есть SecurityManager и разрешения вызывающего не включают или не подразумевают.MBeanPermission("getClassLoaderRepository") -
NullPointerException- еслиserverравен null.
© 1993, 2023, 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/21/docs/api/java.management/javax/management/MBeanServerFactory.html