类 CodebaseAwareObjectInputStream

  • 所有已实现的接口:
    Closeable, DataInput, ObjectInput, ObjectStreamConstants, AutoCloseable

    public class CodebaseAwareObjectInputStream
    extends ConfigurableObjectInputStream
    Special ObjectInputStream subclass that falls back to a specified codebase to load classes from if not found locally. In contrast to standard RMI conventions for dynamic class download, it is the client that determines the codebase URL here, rather than the "java.rmi.server.codebase" system property on the server.

    Uses the JDK's RMIClassLoader to load classes from the specified codebase. The codebase can consist of multiple URLs, separated by spaces. Note that RMIClassLoader requires a SecurityManager to be set, like when using dynamic class download with standard RMI! (See the RMI documentation for details.)

    Despite residing in the RMI package, this class is not used for RmiClientInterceptor, which uses the standard RMI infrastructure instead and thus is only able to rely on RMI's standard dynamic class download via "java.rmi.server.codebase". CodebaseAwareObjectInputStream is used by HttpInvokerClientInterceptor (see the "codebaseUrl" property there).

    Thanks to Lionel Mestre for suggesting the option and providing a prototype!

    从以下版本开始:
    1.1.3
    作者:
    Juergen Hoeller
    另请参阅:
    RMIClassLoader, RemoteInvocationSerializingExporter.createObjectInputStream(java.io.InputStream), HttpInvokerClientInterceptor.setCodebaseUrl(java.lang.String)