Класс 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 |
Создаёт новый RMIServerImpl. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected void |
clientClosed |
Метод, вызываемый, когда подключение клиента, созданное методом makeClient, закрывается. |
void |
close() |
Закрывает этот сервер подключений. |
protected abstract void |
closeClient |
Закрывает подключение клиента, созданное методом makeClient. |
protected abstract void |
closeServer() |
Вызывается методом close() для закрытия сервера коннекторов. |
protected abstract void |
export() |
Экспортирует этот объект RMI. |
ClassLoader |
getDefaultClassLoader() |
Получает значение по умолчанию ClassLoader для этого сервера коннекторов. |
MBeanServer |
getMBeanServer() |
MBeanServer, к которому подключен этот сервер коннекторов. |
protected abstract String |
getProtocol() |
Возвращает строку протокола для этого объекта. |
String |
getVersion() |
Версия протокола RMI Connector, поддерживаемая этим сервером коннекторов. |
protected abstract RMIConnection |
makeClient |
Создаёт новое клиентское подключение. |
RMIConnection |
newClient |
Создаёт новое клиентское подключение. |
void |
setDefaultClassLoader |
Устанавливает значение по умолчанию ClassLoader для этого сервера коннекторов. |
void |
setMBeanServer |
Устанавливает MBeanServer, к которому подключён этот сервер коннекторов. |
abstract Remote |
toStub() |
Возвращает удалённый заглушку для этого объекта сервера. |
Подробное описание конструкторов
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
public ClassLoader getDefaultClassLoader()
Получает стандартный ClassLoader, используемый этим сервером-коннектором.
- Возвращает:
- стандартный
ClassLoader, используемый этим сервером-коннектором. - См. также:
setMBeanServer
public void setMBeanServer(MBeanServer mbs)
Устанавливает MBeanServer, к которому подключен этот сервер-коннектор. Новые подключения клиентов будут взаимодействовать с этим MBeanServer. Существующие подключения клиентов не затрагиваются.
- Параметры:
-
mbs- новыйMBeanServer. Может быть null, но новые подключения клиентов будут отклоняться, пока это так. - См. также:
getMBeanServer
public MBeanServer getMBeanServer()
MBeanServer, к которому подключен этот сервер-коннектор. Это последнее значение, переданное в setMBeanServer(javax.management.MBeanServer) для этого объекта, или null, если этот метод никогда не вызывался.
- Возвращает:
MBeanServer, к которому подключен этот коннектор.- См. также:
getVersion
public String getVersion()
RMIServerВерсия протокола RMI Connector, поддерживаемая этим сервером-коннектором. Это строка со следующим форматом:
protocol-version implementation-name
Версия protocol-version представляет собой серию двух или более неотрицательных целых чисел, разделенных точками (.). Реализация версии, описанной в данной документации, должна использовать строку 1.0 в данном месте.
После версии протокола должен следовать пробел, а затем имя реализации. Формат имени реализации не определен. Рекомендуется, чтобы он включал номер версии реализации. Реализация может использовать пустую строку в качестве имени реализации, например, по соображениям безопасности.
- Определено в:
-
getVersionв интерфейсеRMIServer - Возвращает:
- строку с форматом, описанным здесь.
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, индивидуальные подключения все равно закрываются, а затем это исключение выбрасывается из данного метода.
Если метод closeServer() возвращается нормально, но одно или несколько индивидуальных подключений выбрасывает исключение IOException, то после закрытия всех подключений одно из этих исключений IOException выбрасывается из данного метода. Если более одного подключения выбрасывает исключение IOException, поведение не определено.
- Определено в:
-
closeв интерфейсеAutoCloseable - Определено в:
-
closeв интерфейсеCloseable - Исключение:
-
IOException- если методcloseServer()или один из вызововRMIConnection.close()выбрасывает исключениеIOException.
closeServer
protected abstract void closeServer() throws IOException
Вызывается методом close() для закрытия сервера подключения. После возврата из этого метода сервер подключения не должен принимать новые подключения.
- Исключения:
-
IOException- если попытка закрыть сервер подключения не удалась.
© 1993, 2021, 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/17/docs/api/java.management.rmi/javax/management/remote/rmi/RMIServerImpl.html