【问题标题】:What is correct way to import java web maven project to eclipse?将java web maven项目导入eclipse的正确方法是什么?
【发布时间】:2013-01-17 11:10:18
【问题描述】:

对不起,我对 eclipse 和 java servlet 很陌生。 我读过这个问题 Can Eclipse import a Maven Web project as a "Dynamic Web Application"? ,对我很有帮助。

我确实将项目导入为现有的 Maven 项目。

我已更改项目方面(但动态 Web 模块版本存在一些问题 , 我已将其更改为 2.5), 现在我可以使用“在服务器上运行”选项。 我用的是tomcat 6。

但是在我导入的项目中,我的 web.xml 位置存在一些问题 web.xml 文件位于 root/src/main/webapp/WEB-INF 而eclipse在root/WebContent/WEB-INF中找不到 所以在检测到web.xml文件的一些更改之后, 并且出现了一些 servlet

但是当我尝试运行任何 servlet 时,会出现类似的错误

javax.servlet.ServletException: Wrapper cannot find servlet class com.games.GulliverTravel.servlets.InitializeGameServlet or a class it depends on
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    java.lang.Thread.run(Thread.java:680)
root cause

java.lang.ClassNotFoundException: com.games.GulliverTravel.servlets.InitializeGameServlet
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    java.lang.Thread.run(Thread.java:680)

有我的 pom 文件

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>ProjectName</groupId>
  <artifactId>ProjectName</artifactId>
  <packaging>war</packaging>
  <version>1.0</version>
  <name>ProjectName Backend</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.8.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.thoughtworks.xstream</groupId>
        <artifactId>xstream</artifactId>
        <version>1.3.1</version>
        <scope>compile</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>ProjectName</finalName>
  </build>
</project>

我不明白为什么会这样, 因为当我之前在另一台计算机上这样做时一切都很好, 并且它正确导入,没有一些问题。 请帮我。 它可以与更改 web.xml 文件的位置有关吗? 你知道如何解决这些问题吗?谢谢。

更新: 我克隆项目的存储库也没有 .project 文件, 只有类,web.xml 和 pom 文件。

【问题讨论】:

    标签: java eclipse servlets maven-2 web.xml


    【解决方案1】:

    导入现有的 maven 项目是正确的选项 IMO

    这只会确保您不会丢失源/测试文件夹结构并继续使用 Maven 构建。

    或者你可以在命令行使用mvn eclipse:eclipse命令,它会为你生成eclipse特定的文件。

    【讨论】:

      猜你喜欢
      • 2012-08-25
      • 2013-06-03
      • 2018-08-24
      • 2011-01-04
      • 1970-01-01
      • 2013-10-03
      • 1970-01-01
      • 1970-01-01
      • 2021-10-16
      相关资源
      最近更新 更多