RemoteServer (Java SE 25 & JDK 25)
Description: declaration: module: java.rmi, package: java.rmi.server, class: RemoteServer
Keywords: java.rmi.server.RemoteServer class

# Class RemoteServer

java.lang.Object
java.rmi.server.RemoteObject
java.rmi.server.RemoteServer

All Implemented Interfaces:
  `Serializable, Remote`

Direct Known Subclasses:
  `UnicastRemoteObject`

public abstract class RemoteServer extends RemoteObject
The `RemoteServer` class is the common superclass to server implementations and provides the framework to support a wide range of remote reference semantics. Specifically, the functions needed to create and export remote objects (i.e. to make them remotely available) are provided abstractly by `RemoteServer` and concretely by its subclass(es).

Since:
  1.1
See Also:
  - Serialized Form

- ## Field Summary

  ### Fields declared in class RemoteObject

  `ref`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `RemoteServer()`
  Constructs a `RemoteServer`.
  `protected`
  `RemoteServer(RemoteRef ref)`
  Constructs a `RemoteServer` with the given reference type.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static String`
  `getClientHost()`
  Returns a string representation of the client host for the remote method invocation being processed in the current thread.
  `static PrintStream`
  `getLog()`
  Returns stream for the RMI call log.
  `static void`
  `setLog(OutputStream out)`
  Log RMI calls to the output stream `out`.

  ### Methods declared in class RemoteObject

  `equals, getRef, hashCode, toString, toStub`

  ### Methods declared in class Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### RemoteServer

    protected RemoteServer()
    Constructs a `RemoteServer`.
    Since:
      1.1

  - ### RemoteServer

    protected RemoteServer(RemoteRef ref)
    Constructs a `RemoteServer` with the given reference type.
    Parameters:
      `ref` - the remote reference
    Since:
      1.1

- ## Method Details

  - ### getClientHost

    public static String getClientHost() throws ServerNotActiveException
    Returns a string representation of the client host for the remote method invocation being processed in the current thread.
    Returns:
      a string representation of the client host
    Throws:
      `ServerNotActiveException` - if no remote method invocation is being processed in the current thread
    Since:
      1.1

  - ### setLog

    public static void setLog(OutputStream out)
    Log RMI calls to the output stream `out`. If `out` is `null`, call logging is turned off.
    Parameters:
      `out` - the output stream to which RMI calls should be logged
    Since:
      1.1
    See Also:
      - `getLog()`

  - ### getLog

    public static PrintStream getLog()
    Returns stream for the RMI call log.
    Returns:
      the call log
    Since:
      1.1
    See Also:
      - `setLog(OutputStream)`