Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我不能在Eclipse中现有的Maven项目中创建Servlet_Java_Eclipse_Maven_Servlets - Fatal编程技术网

Java 为什么我不能在Eclipse中现有的Maven项目中创建Servlet

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项目:

我正在尝试在ConfigFileInput.java中创建一个servlet类:

如您所见,它无法识别servlet导入

然而,当我在现有Maven项目之外创建一个web项目时,它可以正常工作。我不确定我是否做对了,这些东西很让人困惑。我希望能得到一些帮助/建议

您需要在pom.xml中添加servlet api作为依赖项


使用项目使用的正确版本

右键单击项目,选择生成路径。在“库”选项卡中,是否看到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>