Класс RMIServerImpl
- java.lang.Object
-
- javax.management.remote.rmi.RMIServerImpl
- Все реализованные интерфейсы:
-
Closeable,AutoCloseable,Remote,RMIServer
- Прямые известные подклассы:
-
RMIIIOPServerImpl,RMIJRMPServerImpl
public abstract class RMIServerImpl extends Object implements Closeable, RMIServer
Объект RMI, представляющий сервер подключения. Клиенты удаленного доступа могут установить подключение, используя метод newClient(Object). Этот метод возвращает объект RMI, представляющий подключение.
Пользовательский код обычно не ссылается на этот класс напрямую. Серверы подключений RMI обычно создаются с помощью класса RMIConnectorServer. Клиенты удаленного доступа обычно создают подключения либо с помощью JMXConnectorFactory, либо, создавая экземпляр RMIConnector.
Это абстрактный класс. Конкретные подклассы определяют детали объектов подключения клиента.
- С:
- 1.5
Конструкторы
| Конструктор | Описание |
|---|---|
RMIServerImpl(Map<String,?> env) | Создаёт новый |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected void | clientClosed(RMIConnection client) | Метод, вызываемый при закрытии подключения клиента, созданного методом |
void | close() | Закрывает этот сервер подключений. |
protected abstract void | closeClient(RMIConnection client) | Закрывает подключение клиента, созданное методом |
protected abstract void | closeServer() | Вызывается методом |
protected abstract void | export() | Экспортирует этот объект RMI. |
ClassLoader | getDefaultClassLoader() | Получает значение по умолчанию |
MBeanServer | getMBeanServer() |
|
protected abstract String | getProtocol() | Возвращает строку протокола для этого объекта. |
protected abstract RMIConnection | makeClient(String connectionId,
Subject subject) | Создаёт новое подключение клиента. |
RMIConnection | newClient(Object credentials) | Создаёт новое подключение клиента. |
void | setDefaultClassLoader(ClassLoader cl) | Устанавливает значение по умолчанию |
void | setMBeanServer(MBeanServer mbs) | Устанавливает |
abstract Remote | toStub() | Возвращает удалённый заглушку для этого объекта сервера. |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Методы, объявленные в интерфейсе javax.management.remote.rmi.RMIServer
getVersion Конструкторы
RMIServerImpl
public RMIServerImpl(Map<String,?> env)
Создаёт новый RMIServerImpl.
- Параметры:
-
env- среда, содержащая атрибуты для новогоRMIServerImpl. Может быть null, что эквивалентно пустому Map.
Методы
export
protected abstract void export()
throws IOException Экспортирует этот RMI-объект.
- Исключения:
-
IOException- если этот RMI-объект не может быть экспортирован.
toStub
public abstract Remote toStub()
throws IOException Возвращает удалённый заглушку для этого серверного объекта.
- Возвращает:
- удаленный заглушку.
- Исключения:
-
IOException- если заглушка не может быть получена - например, если RMIServerImpl ещё не экспортирован.
setDefaultClassLoader
public void setDefaultClassLoader(ClassLoader cl)
Устанавливает значения по умолчанию ClassLoader для этого сервера соединений. Новые клиентские соединения будут использовать этот загрузчик классов. Существующие клиентские соединения не затрагиваются.
- Параметры:
-
cl- новыйClassLoader, который будет использоваться этим сервером соединений. - См. также:
getDefaultClassLoader()
getDefaultClassLoader
public ClassLoader getDefaultClassLoader()
Получает значение по умолчанию ClassLoader, используемое этим сервером соединений.
- Возвращает:
- значение по умолчанию
ClassLoader, используемое этим сервером соединений. - См. также:
setDefaultClassLoader(java.lang.ClassLoader)
setMBeanServer
public void setMBeanServer(MBeanServer mbs)
Устанавливает MBeanServer, к которому подключён этот сервер соединений. Новые клиентские соединения будут взаимодействовать с этим MBeanServer. Существующие клиентские соединения не затрагиваются.
- Параметры:
-
mbs- новыйMBeanServer. Может быть null, но новые клиентские соединения будут отклоняться, пока он им не присвоят значение. - См. также:
getMBeanServer()
getMBeanServer
public MBeanServer getMBeanServer()
MBeanServer, к которому подключен этот сервер соединений. Это последнее значение, переданное в setMBeanServer(javax.management.MBeanServer) для этого объекта, или null, если этот метод никогда не вызывался.
- Возвращает:
MBeanServer, к которому подключен этот соединитель.- См. также:
setMBeanServer(javax.management.MBeanServer)
newClient
public RMIConnection newClient(Object credentials)
throws IOException Создаёт новое клиентское подключение. Этот метод вызывает makeClient и добавляет возвращённый объект клиентского подключения в внутренний список. Когда этот RMIServerImpl закрывается через его метод close(), метод close() каждого объекта, оставшегося в списке, вызывается.
Тот факт, что объект клиентского подключения находится в этом внутреннем списке, не препятствует его сборке мусора.
- Определено в:
-
newClientв интерфейсеRMIServer - Параметры:
-
credentials- этот объект указывает пользовательские учетные данные, которые должны быть переданы на сервер для аутентификации вызывающего абонента перед созданиемRMIConnection. Может быть null. - Возвращает:
- созданный
RMIConnection. Обычно это объект, созданныйmakeClient, хотя реализация может выбрать обернуть этот объект в другой объект, реализующийRMIConnection. - Исключения:
-
IOException- если новый клиентский объект не может быть создан или экспортирован. -
SecurityException- если предоставленные учетные данные не позволяют серверу успешно аутентифицировать пользователя. -
IllegalStateException- еслиgetMBeanServer()имеет значение null.
makeClient
protected abstract RMIConnection makeClient(String connectionId,
Subject subject)
throws IOException Создаёт новое клиентское подключение. Этот метод вызывается общедоступным методом newClient(Object).
- Параметры:
-
connectionId- идентификатор нового подключения. Каждое подключение, открытое этим сервером соединений, будет иметь уникальный идентификатор. Поведение неопределено, если этот параметр имеет значение null. -
subject- аутентифицированный субъект. Может быть null. - Возвращает:
- созданное
RMIConnection. - Исключения:
-
IOException- если новый клиентский объект не может быть создан или экспортирован.
closeClient
protected abstract void closeClient(RMIConnection client)
throws IOException Закрывает клиентское подключение, созданное методом makeClient.
- Параметры:
-
client- соединение, ранее возвращённоеmakeClientметодом, для которого методcloseClientещё не вызывался. Поведение неопределено, если эти условия нарушены, включая случай, когдаclientимеет значение null. - Исключения:
-
IOException- если клиентское подключение не может быть закрыто.
getProtocol
protected abstract String getProtocol()
Возвращает строку протокола для этого объекта. Строка равна rmi для RMI/JRMP.
- Возвращает:
- строку протокола для этого объекта.
clientClosed
protected void clientClosed(RMIConnection client)
throws IOException Метод, вызываемый при закрытии клиентского соединения, созданного методом makeClient. Подкласс, определяющий makeClient, должен обеспечить вызов этого метода при вызове метода close результирующего объекта. Это позволяет удалить его из списка подключений RMIServerImpl . Это не является ошибкой, если client не находится в этом списке.
После удаления client из списка подключений этот метод вызывает closeClient(client).
- Параметры:
-
client- закрытое клиентское соединение. - Исключения:
-
IOException- еслиcloseClient(javax.management.remote.rmi.RMIConnection)вызывает это исключение. -
NullPointerException- еслиclientимеет значение null.
close
public void close()
throws IOException Закрывает сервер соединений. Этот метод сначала вызывает метод closeServer(), чтобы новые клиентские соединения больше не принимались. Затем для каждого оставшегося объекта RMIConnection, возвращённого методом makeClient, вызывается его метод close.
Поведение при вызове этого метода более одного раза не определено.
Если closeServer() вызывает исключение IOException, индивидуальные подключения всё равно закрываются, а затем исключение IOException выбрасывается из этого метода.
Если closeServer() возвращается нормально, но одно или несколько индивидуальных подключений вызывает исключение IOException, то после закрытия всех подключений одно из этих исключений IOException выбрасывается из этого метода. Если более одного подключения вызывает исключение IOException, то какой именно исключения выбрасывается из этого метода не определено.
- Определено в:
-
closeв интерфейсеAutoCloseable - Определено в:
-
closeв интерфейсеCloseable - Исключения:
-
IOException- еслиcloseServer()или один из вызововRMIConnection.close()вызывает исключениеIOException.
closeServer
protected abstract void closeServer()
throws IOException Вызывается методом close() для закрытия сервера соединений. После возвращения из этого метода сервер соединений не должен принимать новые подключения.
- Исключения:
-
IOException- если попытка закрыть сервер соединений не удалась.
© 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.rmi/javax/management/remote/rmi/RMIServerImpl.html