2017-02-22 2 views
0

は私の戦争のアプリケーションを起動するためのMaven桟橋のプラグインを設定しようとするが、それは以下の説明などのようないくつかの合併症があります。シェアクラスローダ

1ºを - それは、EJB JARとの依存関係を持っています。 2度 - これはwar(タグjstl:import context = "nscl")に依存します。 3º - 戦争間のクラスローダーを共有する必要があります。

だから、私は3番目の問題を解決するためにいくつかの助けが必要です。 pom.xmlに私の桟橋のプラグインの設定を検索します:

 <plugin> 
      <groupId>org.eclipse.jetty</groupId> 
      <artifactId>jetty-maven-plugin</artifactId> 
      <version>9.4.1.v20170120</version> 
      <configuration> 
       <useProvidedScope>true</useProvidedScope> 
       <useTestScope>true</useTestScope> 
       <webApp> 
        <contextPath>/nscl/cntr</contextPath> 
       </webApp> 
       <contextHandlers> 
        <contextHandler implementation="org.eclipse.jetty.maven.plugin.JettyWebAppContext"> 
         <war>${contexto.war.path}</war> 
         <contextPath>/nscl</contextPath> 
        </contextHandler> 
       </contextHandlers> 
       <systemProperties> 
        <systemProperty> 
         <name>spring.profiles.active</name> 
         <value>test</value> 
        </systemProperty> 
       </systemProperties> 
      </configuration> 
     </plugin> 

桟橋は、私が最初に戦争を開始するために使用されるクラスを言って問題を受けないように存在する(= NSCLコンテキスト・パス)は、第2の戦争を開始しているときに問題があり、第二に、サンプルは春のフレームワークのクラスです。

ありがとう!!!!

答えて

0

標準サーブレット仕様の動作をしています。

あなたのWebアプリケーションは、同じClassLoaderを共有できません。

これは、ClassLoaderの分離であるServlet Spec WebAppの基本的な部分です。あなたがこれを必要と考える理由それを強制しようと

はちょうどクラスローダーの階層構造を持つ神秘的な問題(InvalidClassChangeエラー、メモリリーク、GCの失敗など)

おそらく、あなたは、詳細することができますが作成されます。

サーブレット仕様の機能を使用してこれを達成するための標準的な方法は既にあります(それと戦わないでください)。