抱歉,我是eclipse和java servlets的新手。 我读过这个问题 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文件。
答案 0 :(得分:0)
导入现有的maven项目是正确的选项IMO
这只会确保您不会丢失源/测试文件夹结构并继续使用Maven构建。
或者您可以在命令行使用mvn eclipse:eclipse
命令,这将为您生成eclipse特定文件。