我在eclipse Luna中创建了一个动态Web项目,然后将其转换为maven项目。 我按如下方式指定了依赖项:
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.3-1102-jdbc41</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
并将tomcat7插件更新为
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0</version>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin>
但在mvn clean install
后跟mvn tomcat7:run
后,我收到以下错误:
SEVERE: Error starting static Resources
java.lang.IllegalArgumentException: Document base /home/dheerendra/workspace/myproject/src/main/webapp does not exist or is not a readable directory
at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:140)
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4906)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5086)
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.run(FutureTask.java:262)
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:745)
Oct 18, 2014 4:24:09 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error in resourceStart()
Oct 18, 2014 4:24:09 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error getConfigured
Oct 18, 2014 4:24:09 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [] startup failed due to previous errors
我知道没有src/main/webapp
目录,因为它不是经典的maven webapp。如何避免此错误并像往常一样正常启动我的tomcat7?
答案 0 :(得分:5)
如果您没有使用标准的webapp文件夹,请指示插件使用您的Web资源所在的目录。以下内容应该修复它。
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0</version>
<configuration>
<port>8080</port>
<path>/</path>
<warSourceDirectory>src/mywebappfolder</warSourceDirectory>
</configuration>
</plugin>
参考:http://tomcat.apache.org/maven-plugin-2.0/tomcat7-maven-plugin/run-mojo.html
答案 1 :(得分:1)
将META-INF
和WEB-INF
移至src/main/webapp
解决了此问题。