2017-02-22 3 views
0

Je vais essayer de configurer le plugin Maven Jetty pour commencer ma demande de guerre, mais il a quelques complications comme des descriptions de suivi:Partager Classloader entre plusieurs dans le plugin Maven Jetty

1º - Il a des dépendances avec un pot de ejb; 2º - Il a des dépendances avec war (tag jstl: import context = "nscl"); 3º - Le classloader entre les guerres doit être partagé. Donc, j'ai besoin d'aide pour résoudre le troisième problème. On dirait ma configuration de plugin jetée 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> 

Le problème est, quand la jetée commence la deuxième guerre (contexte path = NSCL), je reçois des problèmes disant que les classes utilisées pour commencer la première guerre n'existons pour en second lieu, un échantillon est des classes de cadre de printemps.

Merci!

Répondre

0

Vous rencontrez le comportement Standard Servlet Spec.

Votre WebApp ne peut pas partager le même ClassLoader.

Cela est une partie fondamentale d'être une WebApp Servlet Spec, l'isolation ClassLoader.

essayer de la forcer va juste créer des problèmes mystérieux avec la hiérarchie ClassLoader (erreurs de InvalidClassChange, les fuites de mémoire, les défaillances du GC, etc.)

Peut-être que vous pouvez détail pourquoi vous pensez que vous avez besoin de ce.

Comme il existe probablement déjà un moyen standard de l'accomplir en utilisant les caractéristiques de la spécification Servlet (et non de la combattre).