扩展类路径和Tomcat插件

时间:2013-07-31 05:48:17

标签: java maven tomcat7

我目前正在工作的项目是一个标准的Web应用程序,并希望用嵌入式tomcat(mvn tomcat7:run)启动它。在META-INF / context.xml中有一个条目

<Loader className="org.apache.catalina.loader.VirtualWebappLoader"
        virtualClasspath="${home}/lib"/>  

扩展Web应用程序的类路径。

使用mvn tomcat7启动Web应用程序时:运行很多ClassNotFoundExceptions,例如

java.lang.ClassNotFoundException: org.apache.catalina.deploy.ServletDef

被抛出。

在扩展context.xml中的类路径时,有没有办法让嵌入式tomcat和tomcat插件一起工作?

1 个答案:

答案 0 :(得分:4)

这个问题的答案是将Tomcat插件设置为使用maven中的单独类加载器。这是通过将插件的useSeparateTomcatClassLoader参数设置为true来完成的。这可以在Tomcat插件配置中完成:

<plugin>
  <groupId>org.apache.tomcat.maven</groupId>
  <artifactId>tomcat7-maven-plugin</artifactId>
  <configuration>
    <contextReloadable>true</contextReloadable>
    <useSeparateTomcatClassLoader>true</useSeparateTomcatClassLoader>
  </configuration>
</plugin>

或在用于启动Tomcat插件的命令行上:

mvn tomcat7:run -Dtomcat.useSeparateTomcatClassLoader=true

请参阅:http://tomcat.apache.org/maven-plugin-2.1/tomcat7-maven-plugin/run-mojo.html