Класс MBeanServerFactory
- java.lang.Object
-
- javax.management.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 по умолчанию, например, для добавления дополнительного уровня безопасности.
- С момента:
- 1.5
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
static MBeanServer | createMBeanServer() | Возвращает новый объект, реализующий интерфейс MBeanServer с стандартным именем области по умолчанию. |
static MBeanServer | createMBeanServer(String domain) | Возвращает новый объект, реализующий интерфейс |
static ArrayList<MBeanServer> | findMBeanServer(String agentId) | Возвращает список зарегистрированных объектов сервера MBean. |
static ClassLoaderRepository | getClassLoaderRepository(MBeanServer server) | Возвращает ClassLoaderRepository, используемый данным сервером MBean. |
static MBeanServer | newMBeanServer() | Возвращает новый объект, реализующий интерфейс MBeanServer с стандартным именем области по умолчанию, не сохраняя внутреннюю ссылку на этот новый объект. |
static MBeanServer | newMBeanServer(String domain) | Возвращает новый объект, реализующий интерфейс MBeanServer с указанным именем области по умолчанию, не сохраняя внутреннюю ссылку на этот новый объект. |
static void | releaseMBeanServer(MBeanServer mbeanServer) | Удаляет внутренние ссылки MBeanServerFactory на созданный сервер MBean. |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Методы
releaseMBeanServer
public static void releaseMBeanServer(MBeanServer mbeanServer)
Удалить внутренние ссылки MBeanServerFactory на созданный MBeanServer. Это позволяет сборщику мусора удалить объект MBeanServer.
- Параметры:
-
mbeanServer- объект MBeanServer для удаления. - Исключения:
-
IllegalArgumentException- еслиmbeanServerне был создан одним из методовcreateMBeanServer, или еслиreleaseMBeanServerуже был вызван на нём. -
SecurityException- если существует SecurityManager и разрешения вызывающего не включают или не подразумевают.MBeanServerPermission("releaseMBeanServer")
createMBeanServer
public static MBeanServer createMBeanServer()
Возвращает новый объект, реализующий интерфейс MBeanServer со стандартным именем домена по умолчанию. Имя домена по умолчанию используется как часть имени объекта MBean, когда пользовательский домен равен null.
Стандартное имя домена по умолчанию: 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, когда пользовательский домен равен null.
Ссылка на MBeanServer сохраняется во внутренней области. Это позволит findMBeanServer вернуть ссылку на этот объект MBeanServer.
- Параметры:
-
domain- имя домена по умолчанию для создаваемого MBeanServer. Это значение, которое будет возвращеноMBeanServerConnection.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, когда пользовательский домен равен null.
Стандартное имя домена по умолчанию: 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, когда пользовательский домен равен null.
Ссылка не сохраняется. findMBeanServer не сможет вернуть ссылку на этот объект MBeanServer, но сборщик мусора сможет удалить объект MBeanServer, когда на него больше нет ссылок.
- Параметры:
-
domain- имя домена по умолчанию для создаваемого MBeanServer. Это значение, которое будет возвращеноMBeanServerConnection.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)
Возвращает ClassLoaderRepository, используемый данным MBeanServer. Этот метод эквивалентен server.getClassLoaderRepository().
- Параметры:
-
server- MBeanServer, который проверяется. С JMX 1.2, еслиserverявляетсяnull, результатом являетсяNullPointerException. Это поведение отличается от реализации в JMX 1.1 — где возможность использоватьnullбыла устаревшей. - Возвращает:
- Класс загрузчика, используемый данным MBeanServer.
- Исключения:
-
SecurityException- если существует SecurityManager и разрешения вызывающего не включают или не подразумевают.MBeanPermission("getClassLoaderRepository") -
NullPointerException- еслиserverравно null.
© 1993, 2020, 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/11/docs/api/java.management/javax/management/MBeanServerFactory.html