最初に親に委譲する代わりに、クラス自体の検索とロードを試みるカスタムクラスローダーがある場合、それは何らかの規定/非規定のルールに違反しますか?
1 に答える
Tomcat webappクラスローダーはこのモデルに従っているので、少なくともある程度は機能すると思います:) Tomcatクラスローダーのドキュメントから:
上記のように、Webアプリケーションクラスローダーは、デフォルトのJava 2委任モデルとは異なります(サーブレット仕様、バージョン2.4、セクション9.7.2 Webアプリケーションクラスローダーの推奨事項に従って)。WebアプリケーションのWebappXクラスローダーからクラスをロードする要求が処理されると、このクラスローダーは、委任する前にローカルリポジトリを検索するのではなく、最初にローカルリポジトリを検索します。例外があります。JRE基本クラスの一部であるクラスはオーバーライドできません。一部のクラス(J2SE 1.4以降のXMLパーサーコンポーネントなど)では、J2SE1.4で承認された機能を使用できます。最後に、サーブレットAPIクラスを含むJARファイルは、クラスローダーによって明示的に無視されます—そのようなJARをWebアプリケーションに含めないでください。Tomcat 6の他のすべてのクラスローダーは、通常の委任パターンに従います。
これを行う前に非常に注意する必要があるように思えますが、慎重に使用すれば、場合によっては役立つことがあります。それを完全に文書化し(特にこれがサードパーティの開発者に見られる場合)、厄介な問題のトラブルシューティングに役立つ十分なログ/診断が含まれていることを確認する必要があります。