1

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

4

1 に答える 1

0

これらのタグの広範な使用を避ける以外に、それについてできることはあまりないようです。このコード セクションをリファクタリングしました。

  • XML 解析は、JAXB を使用して XSD から生成されたオブジェクト グラフに入力するカスタム タグによって実行されるようになりました。
  • JSP は標準表記法を使用してオブジェクト グラフを参照するようになりました

JSPでXML解析を行うことは特に良い考えではないことを示しています...

于 2012-06-13T19:25:21.923 に答える