Eclipse 内から Java クライアントを実行して、RMI を使用してサーバー アプリに接続すると、例外が発生します: java.io.StreamCorruptedException: 無効なタイプ コード: 01
これはEclipse内からのみ発生し、他の場所(IntelliJ、コマンドラインなど)では発生しません。
誰が何が起こっているのか知っていますか?
以前にこの問題に遭遇したようです;)そして、JBoss でも見られます。
通常は次のとおりです。
ClassLoader
ビューアが実行されているときにコンテキストにある はですorg.apache.catalina.loader.WebappClassLoader
。したがって、次のようにすると:
ClassLoader savedClassLoader = Thread.currentThread.getContextClassLoader();
if (savedClassLoader.getClass().getName().equalsIgnoreCase("org.apache.catalina.loader.WebappClassLoader")){
Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
}
保存したローダーを に戻すと、
IConnection.Close()
機能します
サーバーとクライアントのコード間の非互換性でしょうか? それぞれをコンパイルするためにどの JVM を使用しましたか?