JSTL XML タグ、特に XPath セレクターを多用するアプリケーション (Java ベース、WebLogic 10.3.5 で実行) を継承しました。これらのタグの実装と、DTMManager クラスが最初に解決されてから DTMManager.newInstance メソッドによってインスタンス化される方法が原因で、すぐにいくつかのパフォーマンスの問題に遭遇しました。
DTMManager クラス名ルックアップの問題は以前に文書化com.sun.org.apache.xml.dtm.DTMManager
されており、システム プロパティを設定することで解決されました。
ただし、クラス名が見つかると、com.sun.org.apache.xml.internal.dtm.ObjectFactory.findProviderClass
メソッドは (null ではない) クラスローダーにクラス定義をロードするように要求し、結果をキャッシュしません! WebLogic 環境では、この操作は非常にコストがかかり、応答時間のかなりの部分を占めます。
クラス定義がキャッシュされない理由はありますか? クラス定義が毎回ロードされるのを避ける方法はありますか?
本当にありがとう。
更新クラスについても同様の動作が見られcom.sun.org.apache.xerces.internal.impl.dv.DTDDVFactory
ます。ClassLoader は を呼び出すたびにクラス定義をリロードしますDTDDVFactory.newInstance
。