java - 使用 Maven 的 Eclipse 动态 Web 项目在 mvn tomcat7 :run 上抛出错误

标签 java eclipse maven tomcat7 web-project

我在 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?

最佳答案

如果您没有使用标准的 webapp 文件夹,请指示插件使用您的网络资源所在的目录。类似下面的内容应该可以修复它。

  <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

关于java - 使用 Maven 的 Eclipse 动态 Web 项目在 mvn tomcat7 :run 上抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26439055/

相关文章:

java - 我可以从目标文件夹中排除 Maven 插件文件夹吗?

java - 在 eclipse 中创建 org.jenkins-ci.plugins 时出现 maven-enforcer-plugin 问题

apache - Maven 3.5.2 无法将 Artifact 部署到 Artifactory,出现错误 417

java - 转换为 Dalvik 格式失败 eclipse android-support-v4.jar 错误

java - Android线程刚刚停止

java - 我可以在 Activity 和类中声明和使用相同的按钮吗?

java - 给定一个 Swing 容器和坐标,我如何找到制造的鼠标事件的源?

linux - 类型错误执行 aapt : Cannot run program "/opt/android-sdk-linux/build-tools/19.0.1/aapt": java. io.IOException

eclipse - 如何在 Eclipse RCP 中自动为我们编写的方法生成注释?

java - 明确表示类实现接口(interface)