Динамический веб-проект Eclipse с maven выдает ошибку на mvn tomcat7: run

Я создал динамический веб-проект в eclipse Luna, а затем преобразовал его в проект 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. Как я могу избежать этой ошибки и запустить свой tomcat7 как обычно?


person Dheerendra    schedule 18.10.2014    source источник


Ответы (2)


Если вы не используете стандартную папку веб-приложений, укажите плагину использовать каталог, в котором расположены ваши веб-ресурсы. Что-то вроде приведенного ниже должно исправить это.

  <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

person coderplus    schedule 18.10.2014
comment
Спасибо, это сработало. Но по-прежнему maven не обнаруживает файлы в папке WebContent, указанные в файле web.xml в качестве приветственного файла. Любое решение для этого? - person Dheerendra; 18.10.2014

Перемещение META-INF и WEB-INF в src/main/webapp решило эту проблему.

person ketankk    schedule 18.03.2017