【发布时间】:2015-10-27 16:34:33
【问题描述】:
我用两个 maven 孩子创建了 maven 父模块。它是部署到Tomcat目录的war输出中基于Web的应用程序。问题是为了测试war文件,我必须启动Tomcat并测试应用程序。对于这种情况,我决定在父 POM.xml 文件中使用 jetty maven 插件。下面是它的样子:
<modules>
<module>hellojavaworld</module>
<module>application</module>
</modules>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.2.11.v20150529</version>
<configuration>
<scanIntervalSeconds>10</scanIntervalSeconds>
<webApp>
<contextPath>/hellojavaworld</contextPath>
</webApp>
<war>c:\apache-tomcat-7.0.64\webapps\hellojavaworld.war</war>
</configuration>
</plugin>
如果我手动启动 Tomcat 并使用 http://localhost:8080/hellojavaworld 它工作正常。 另一方面当使用时
mvn jetty:run-war
它可以工作,但遇到错误:
HTTP ERROR 500
Problem accessing /hellojavaworld/HelloServlet. Reason:
Server Error
Caused by:
java.lang.NoClassDefFoundError: org/apache/log4j/Level
我知道这个问题很常见,因为缺少 jars。我知道这些罐子放在 c:\apache-tomcat-7.0.64\lib\ 文件夹中。
所以问题是如何告诉码头使用这个文件夹作为我的战争文件的外部罐子?
注意:它运行的Tomcat本身,只是码头有问题。
【问题讨论】:
标签: maven tomcat log4j jetty war