@DeprecatedSE public class CodebaseAwareObjectInputStream extends ConfigurableObjectInputStream
JDK の RMIClassLoader を使用して、指定されたコードベースからクラスをロードします。コードベースは、スペースで区切られた複数の URL で構成できます。標準 RMI で動的クラスダウンロードを使用する場合と同様に、RMIClassLoader では SecurityManager を設定する必要があることに注意してください。(詳細については、RMI のドキュメントを参照してください。)
このクラスは RMI パッケージに存在しますが、RmiClientInterceptor では使用されません。代わりに標準の RMI インフラストラクチャが使用されるため、"java.rmi.server.codebase" 経由の RMI の標準動的クラスのダウンロードにのみ依存できます。CodebaseAwareObjectInputStream は HttpInvokerClientInterceptor によって使用されます ( "codebaseUrl" プロパティを参照してください)。
オプションを提案し、プロトタイプを提供してくれた Lionel Mestre に感謝します。
ObjectInputStream.GetFieldSEbaseWireHandleSE, PROTOCOL_VERSION_1SE, PROTOCOL_VERSION_2SE, SC_BLOCK_DATASE, SC_ENUMSE, SC_EXTERNALIZABLESE, SC_SERIALIZABLESE, SC_WRITE_METHODSE, STREAM_MAGICSE, STREAM_VERSIONSE, SUBCLASS_IMPLEMENTATION_PERMISSIONSE, SUBSTITUTION_PERMISSIONSE, TC_ARRAYSE, TC_BASESE, TC_BLOCKDATASE, TC_BLOCKDATALONGSE, TC_CLASSSE, TC_CLASSDESCSE, TC_ENDBLOCKDATASE, TC_ENUMSE, TC_EXCEPTIONSE, TC_LONGSTRINGSE, TC_MAXSE, TC_NULLSE, TC_OBJECTSE, TC_PROXYCLASSDESCSE, TC_REFERENCESE, TC_RESETSE, TC_STRINGSE| コンストラクターと説明 |
|---|
CodebaseAwareObjectInputStream(InputStreamSE in, ClassLoaderSE classLoader, boolean acceptProxyClasses) 使用すべきではありません。 指定された InputStream とコードベースの新しい CodebaseAwareObjectInputStream を作成します。 |
CodebaseAwareObjectInputStream(InputStreamSE in, ClassLoaderSE classLoader, StringSE codebaseUrl) 使用すべきではありません。 指定された InputStream とコードベースの新しい CodebaseAwareObjectInputStream を作成します。 |
CodebaseAwareObjectInputStream(InputStreamSE in, StringSE codebaseUrl) 使用すべきではありません。 指定された InputStream とコードベースの新しい CodebaseAwareObjectInputStream を作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
protected ClassLoaderSE | getFallbackClassLoader() 使用すべきではありません。 ClassLoader が指定されておらず、ObjectInputStream 自身のデフォルトクラスローダーが失敗した場合に使用するフォールバック ClassLoader を返します。 |
protected ClassSE<?> | resolveFallbackIfPossible(StringSE className, ClassNotFoundExceptionSE ex) 使用すべきではありません。 フォールバッククラスローダーに対して指定されたクラス名を解決します。 |
resolveClass, resolveProxyClassavailableSE, closeSE, defaultReadObjectSE, enableResolveObjectSE, readSE, readSE, readBooleanSE, readByteSE, readCharSE, readClassDescriptorSE, readDoubleSE, readFieldsSE, readFloatSE, readFullySE, readFullySE, readIntSE, readLineSE, readLongSE, readObjectSE, readObjectOverrideSE, readShortSE, readStreamHeaderSE, readUnsharedSE, readUnsignedByteSE, readUnsignedShortSE, readUTFSE, registerValidationSE, resolveObjectSE, skipBytesSEmarkSE, markSupportedSE, readSE, resetSE, skipSEcloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEreadSE, skipSEpublic CodebaseAwareObjectInputStream(InputStreamSE in, StringSE codebaseUrl) throws IOExceptionSE
in - 読み込み元の InputStreamcodebaseUrl - ローカルに見つからない場合にクラスをロードするコードベース URL (スペースで区切られた複数の URL で構成できます)IOExceptionSEObjectInputStream(java.io.InputStream)SEpublic CodebaseAwareObjectInputStream(InputStreamSE in, @Nullable ClassLoaderSE classLoader, StringSE codebaseUrl) throws IOExceptionSE
in - 読み込み元の InputStreamclassLoader - ローカルクラスのロードに使用する ClassLoader (RMI のデフォルトの ClassLoader を示す null )codebaseUrl - ローカルに見つからない場合にクラスをロードするコードベース URL (スペースで区切られた複数の URL で構成できます)IOExceptionSEObjectInputStream(java.io.InputStream)SEpublic CodebaseAwareObjectInputStream(InputStreamSE in, @Nullable ClassLoaderSE classLoader, boolean acceptProxyClasses) throws IOExceptionSE
in - 読み込み元の InputStreamclassLoader - ローカルクラスのロードに使用する ClassLoader (RMI のデフォルトの ClassLoader を示す null )acceptProxyClasses - プロキシクラスの逆直列化を受け入れるかどうか (セキュリティ対策として無効にすることができます)IOExceptionSEObjectInputStream(java.io.InputStream)SEprotected ClassSE<?> resolveFallbackIfPossible(StringSE className, ClassNotFoundExceptionSE ex) throws IOExceptionSE, ClassNotFoundExceptionSE
ConfigurableObjectInputStreamデフォルトの実装では、利用可能なフォールバックがないため、元の例外が単に再スローされます。
ConfigurableObjectInputStream の resolveFallbackIfPossible className - 解決するクラス名 ex - クラスをロードしようとしたときにスローされた元の例外 null)IOExceptionSEClassNotFoundExceptionSEprotected ClassLoaderSE getFallbackClassLoader() throws IOExceptionSE
ConfigurableObjectInputStream デフォルトの実装は null を返すだけで、特定のフォールバックが利用できないことを示します。
ConfigurableObjectInputStream の getFallbackClassLoader IOExceptionSE