【发布时间】:2014-09-02 14:43:51
【问题描述】:
我只是将项目从简单的 Java Web 应用程序转换为 Maven 项目。并尝试使用目标mvn tomcat7:run 和适当的插件来运行这个项目
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<path>/</path>
</configuration>
</plugin>
我的项目没有标准的 Maven 布局结构,这就是我在 pom 中更改构建设置的原因
<build>
<sourceDirectory>src</sourceDirectory>
<resources>
<resource>
<directory>src</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
每次我尝试运行项目时都会出现下一个错误
java.lang.IllegalArgumentException: Document base <path-to-app>\src\main\webapp does not exist or is not a readable directory
at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:138)
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4912)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5092)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
请帮助我了解为什么会出现此错误(我什至删除了 Tomcat 中的 Server 文件夹)
【问题讨论】:
-
您的 jsp /html 文件保存在哪里?他们应该按照 maven 约定进入
src/main/webapp目录。 -
@Adi 我将 jsp 保存在
WebContent中,据我所知<warSourceDirectory>WebContent</warSourceDirectory>这一行有助于覆盖默认的 webapp 文件夹位置