Java 为什么我不能在Eclipse中现有的Maven项目中创建Servlet
我签出了一个具有以下目录结构的现有Maven项目: 我正在尝试在ConfigFileInput.java中创建一个servlet类: 如您所见,它无法识别servlet导入 然而,当我在现有Maven项目之外创建一个web项目时,它可以正常工作。我不确定我是否做对了,这些东西很让人困惑。我希望能得到一些帮助/建议 您需要在pom.xml中添加servlet api作为依赖项Java 为什么我不能在Eclipse中现有的Maven项目中创建Servlet,java,eclipse,maven,servlets,Java,Eclipse,Maven,Servlets,我签出了一个具有以下目录结构的现有Maven项目: 我正在尝试在ConfigFileInput.java中创建一个servlet类: 如您所见,它无法识别servlet导入 然而,当我在现有Maven项目之外创建一个web项目时,它可以正常工作。我不确定我是否做对了,这些东西很让人困惑。我希望能得到一些帮助/建议 您需要在pom.xml中添加servlet api作为依赖项 使用项目使用的正确版本右键单击项目,选择生成路径。在“库”选项卡中,是否看到Maven依赖项?如果是这样,servlet
使用项目使用的正确版本右键单击项目,选择生成路径。在“库”选项卡中,是否看到Maven依赖项?如果是这样,servlet api在pom.xml中是一个依赖项吗?@SotiriosDelimanolis,我刚刚从下面的答案中添加了它,它删除了所有错误,除了:javax.servlet.annotation包javax.servlet.annotation是用于servlet 3.0的。检查依赖关系。谢谢,这似乎对我有用。如何确定我的项目使用的是哪个版本的servlet api?如果您试图使用servlet 3.0特性,例如基于实例注释的servlet等。。如果您使用的是与某个版本的servlet api兼容的任何其他框架,则可以选择3.0,然后使用该版本,通常这些是决定因素如果您在eclipse中的本地tomcat实例上运行它,请不要忘记将提供的设置为。@SotiriosDelimanolis,它现在可以与提供的一起工作,但是如果我想把它打包成一个war文件并在tomcat服务器上运行,那么我需要做些什么改变呢?@Chaos你不会从Maven的角度来做。由于提供了作用域,maven在生成war时不会为该库添加jar。本文提供的要点是,在运行应用程序时,一些容器tomcat将在类路径上提供该库。确保您的Tomcat服务器足够新,可以运行Servlet3.0。
<project>
.
.
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
</dependencies>
.
.
</project>