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