2017-06-02 1 views
0

Tomcat 9を使用しています。プロジェクト関連のjarファイルをPreResourcesタグの下からロードしようとしています。Tomcat:PreResourcesタグがjarファイルをロードしていない

<Resources className="org.apache.catalina.webresources.StandardRoot" cachingAllowed="true" cacheMaxSize="100000" allowLinking="true"> 
<PreResources className="org.apache.catalina.webresources.DirResourceSet" 
    base="D:\SomePath\apache-tomcat-9.0.0.M17-windows-x64-2\apache-tomcat-9.0.0.M17" 
    internalPath="/External-lib" 
    webAppMount="/WEB-INF/classes" /> 

External-libフォルダは、 'base'に記載されているパスに従ってtomcatディレクトリにあります。アプリケーションがデプロイされると、私は以下のエラーに陥ります。 Tomcatのlibに

java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener 

これは、web.xmlファイルから呼び出され、

org.springframework.web.context.ContextLoaderListener

、我々はすべてのjarファイルのアール残りの部分とちょうどTomcatのライブラリを持っていますExternal-libフォルダーにあります。 WebAppとjarファイルが似ているので、webapp/web-inf/libフォルダにはロードしないで外部化しようとしています。

PreResources要素を使用して、meta-inf/context.xmlからjarをロードする際に何か不足していることをお勧めします。

このPreResources要素の例とドキュメントは非常に少ないです。 いずれの方向や助けをいただければ幸いです。

答えて

1

これはcontext.xmlの内容であったはずです。それは私の問題を解決し修正しました。

<?xml version="1.0" encoding="UTF-8"?> 
<Context> 
    <Resources> 
     <PreResources className="org.apache.catalina.webresources.DirResourceSet" 
      base="SomePath\External-lib\" 
      webAppMount="/WEB-INF/lib" /> 
    </Resources> 
</Context> 

"Base"は外部リソースへのパスで、 "webAppMount"はこれらのリソースをマウントする場所です。

関連する問題