5

私のシナリオは次のとおりです。

サーブレット コンテナーにデプロイされた WebApp.war があります。この WebApp.war には、WEB-INF/lib に次のライブラリが含まれています。

  • lib_a.jar
  • lib_b.jar

lib_vendor.jar などの別のライブラリがあり、ライセンスの問題により WebApp/WEB-INF/lib 内に展開できないため、アプリケーションのインストール後にこのライブラリを tomcat/lib にコピーできるようにしています。しかし、lib_vendor.jar は Web アプリケーションのクラスローダに読み込まれる lib_a.jar と lib_b.jar を必要とするため、lib_vendor.jar を使用できません。

Web アプリケーションの同じクラスローダーに外部ライブラリ (WEB-INF/lib ではない) をロードするにはどうすればよいですか?

4

1 に答える 1

6

Tomcat を使用しているため、VirtualWebappLoaderを利用できます。

META-INF/context.xml白を追加

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/somepath/myapp">
    <Loader className="org.apache.catalina.loader.VirtualWebappLoader"
              virtualClasspath="/somedir/*.jar"/>
</Context>

以下のコメントに正しく記載されているように、virtualClasspath 属性は絶対パスでなければならないことにも注意してください。

于 2012-12-04T15:40:05.220 に答える