0

Java EE アプリケーションを Oracle 10g Application Server から Oracle 11g Weblogic Server に移植しています。

Connection 関連のクラスを含み、war/web-inf/lib 内に存在する common.jar があります。アプリケーションは EAR としてデプロイされ、ejb は common.jar 内のクラスも参照して DB 接続を取得します。EJB は実行時にこれらのクラスへの参照を取得できません。common.jar を APP-INF/lib ディレクトリ内にコピーしました。その場合、JSP は Connection 関連のクラスへの参照を取得できません。SQLコードが埋め込まれたjspがあります。このアプリケーションはずっと前に開発されたものであり、現在これらのコードを変更するビジネス知識はありません。

この問題を解決するにはどうすればよいですか? war/web-inf/lib 内にあるクラスへの参照を ejb が取得する方法。

4

1 に答える 1

0

クラスの WAR WEB-INF/lib を EJB で調べることはできません。これは、WeblogicのClassloader Hierarchyに反します。

共通の jar を APP-INF/lib に配置するのが正しい方法です。

WebLogic Server では、共有ユーティリティ クラスを格納できる EAR ファイル内の場所が提供されます。ユーティリティ JAR ファイルを APP-INF/lib ディレクトリに配置し、個々のクラスを APP-INF/classes ディレクトリに配置します。(JAR ファイルを /classes ディレクトリに配置したり、クラスを /lib ディレクトリに配置したりしないでください。) これらのクラスは、アプリケーションのルート クラスローダーにロードされます。

これらをロードできないときに JSP が受け取るエラーも投稿できますか? これらですかClassNotFoundException、それともNoClassDefFoundError何か他のものですか?

共有 Java EE ライブラリを使用するためのベスト プラクティスも参照してください。

于 2011-08-25T08:39:03.977 に答える