2017-02-22 46 views
0

我尝试配置Maven插件码头开始我的战争应用,但它有一些并发症,像如下描述:分享类加载器

1º - 它有一个EJB JAR依赖关系; 2º - 它依赖于war(tag jstl:import context =“nscl”); 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> 

的问题是,当码头开始第二次战争(context路径= NSCL),我收到的问题说用来启动第一战类不存在其次,样本是春季框架的类。

谢谢!

回答

0

您正在执行标准Servlet规范行为。

您的WebApp无法共享相同的ClassLoader。

这是作为Servlet Spec WebApp和ClassLoader隔离的基础部分。

试图迫使它只是创建一个类加载器层次神秘的问题(InvalidClassChange错误,内存泄漏,GC故障等)

也许你可以详细为什么你认为你需要这个。

由于使用Servlet规范的功能可能已经有了一个标准的方法来实现它(而不是与之对抗)。