問題
- 私たちの Web アプリは、コンストラクター
java.net.URLに a のカスタム実装を渡すことを作成しURLStreamHandlerます。 - その URL で、 を呼び出します
url.openConnection()。 java.net.URLコードはハンドラーを呼び出しますopenConnection()。- この時点で
NoClassDefFoundError、ハンドラーが使用するクラスの を取得します。
これは Glassfish 3.1 で発生しますが、Tomcat、WebLogic、および JBoss では発生しません。(また、Glassfish の古いバージョンでも動作していました。)
私が試したこと
glassfish-web.xmlGlassfish に最初に Web アプリからクラスをロードするように (予想どおり) を追加しようとしましたが、これで問題は解決しません。
<glassfish-web-app>
<class-loader delegate="false"/>
</glassfish-web-app>
この問題を解決するにはどうすればよいですか? また、なぜこの問題が発生するのですか?