javax.management.remote.rmi

## Class RMIJRMPServerImpl

- java.lang.Object
- - javax.management.remote.rmi.RMIServerImpl
  - - javax.management.remote.rmi.RMIJRMPServerImpl

- All Implemented Interfaces:
    Closeable, AutoCloseable, Remote, RMIServer

      public class RMIJRMPServerImpl
      extends RMIServerImpl

  An `RMIServer` object that is exported through JRMP and that creates client connections as RMI objects exported through JRMP. User code does not usually reference this class directly.

  Since:
    1.5
  See Also:
    `RMIServerImpl`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `RMIJRMPServerImpl(int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf, Map<String,?> env)` Creates a new `RMIServer` object that will be exported on the given port using the given socket factories.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `closeClient(RMIConnection client)` Closes a client connection made by `makeClient`.
    `protected void` | `closeServer()` Called by `RMIServerImpl.close()` to close the connector server by unexporting this object.
    `protected void` | `export()` Exports this RMI object.
    `protected String` | `getProtocol()` Returns the protocol string for this object.
    `protected RMIConnection` | `makeClient(String connectionId, Subject subject)` Creates a new client connection as an RMI object exported through JRMP.
    `Remote` | `toStub()` Returns a serializable stub for this `RMIServer` object.

    - ### Methods inherited from class javax.management.remote.rmi.RMIServerImpl

      `clientClosed, close, getDefaultClassLoader, getMBeanServer, getVersion, newClient, setDefaultClassLoader, setMBeanServer`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### RMIJRMPServerImpl

          public RMIJRMPServerImpl(int port,
                           RMIClientSocketFactory csf,
                           RMIServerSocketFactory ssf,
                           Map<String,?> env)
                            throws IOException

      Creates a new `RMIServer` object that will be exported on the given port using the given socket factories.

      Parameters:
        `port` - the port on which this object and the `RMIConnectionImpl` objects it creates will be exported. Can be zero, to indicate any available port.
        `csf` - the client socket factory for the created RMI objects. Can be null.
        `ssf` - the server socket factory for the created RMI objects. Can be null.
        `env` - the environment map. Can be null.
      Throws:
        `IOException` - if the `RMIServer` object cannot be created.
        `IllegalArgumentException` - if `port` is negative.

  - ### Method Detail

    - #### export

          protected void export()
                         throws IOException

      Description copied from class: `RMIServerImpl`

      Exports this RMI object.

      Specified by:
        `export` in class `RMIServerImpl`
      Throws:
        `IOException` - if this RMI object cannot be exported.

    - #### getProtocol

          protected String getProtocol()

      Description copied from class: `RMIServerImpl`

      Returns the protocol string for this object. The string is `rmi` for RMI/JRMP and `iiop` for RMI/IIOP.

      Specified by:
        `getProtocol` in class `RMIServerImpl`
      Returns:
        the protocol string for this object.

    - #### toStub

          public Remote toStub()
                        throws IOException

      Returns a serializable stub for this `RMIServer` object.

      Specified by:
        `toStub` in class `RMIServerImpl`
      Returns:
        a serializable stub.
      Throws:
        `IOException` - if the stub cannot be obtained - e.g the RMIJRMPServerImpl has not been exported yet.

    - #### makeClient

          protected RMIConnection makeClient(String connectionId,
                                 Subject subject)
                                      throws IOException

      Creates a new client connection as an RMI object exported through JRMP. The port and socket factories for the new `RMIConnection` object are the ones supplied to the `RMIJRMPServerImpl` constructor.

      Specified by:
        `makeClient` in class `RMIServerImpl`
      Parameters:
        `connectionId` - the ID of the new connection. Every connection opened by this connector server will have a different id. The behavior is unspecified if this parameter is null.
        `subject` - the authenticated subject. Can be null.
      Returns:
        the newly-created `RMIConnection`.
      Throws:
        `IOException` - if the new `RMIConnection` object cannot be created or exported.

    - #### closeClient

          protected void closeClient(RMIConnection client)
                              throws IOException

      Description copied from class: `RMIServerImpl`

      Closes a client connection made by `makeClient`.

      Specified by:
        `closeClient` in class `RMIServerImpl`
      Parameters:
        `client` - a connection previously returned by `makeClient` on which the `closeClient` method has not previously been called. The behavior is unspecified if these conditions are violated, including the case where `client` is null.
      Throws:
        `IOException` - if the client connection cannot be closed.

    - #### closeServer

          protected void closeServer()
                              throws IOException

      Called by `RMIServerImpl.close()` to close the connector server by unexporting this object. After returning from this method, the connector server must not accept any new connections.

      Specified by:
        `closeServer` in class `RMIServerImpl`
      Throws:
        `IOException` - if the attempt to close the connector server failed.

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2015, Oracle and/or its affiliates. All rights reserved.