【问题标题】:Why can't I create a Servlet in an existing Maven Project in Eclipse为什么我不能在 Eclipse 的现有 Maven 项目中创建 Servlet
【发布时间】:2013-08-13 20:31:18
【问题描述】:

我检查了一个现有的 Maven 项目,其目录结构如下:

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

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

但是,当我在现有 Maven 项目之外创建一个 Web 项目时,它工作得很好。我不确定我是否做对了,这很令人困惑。我将不胜感激一些帮助/建议。

【问题讨论】:

  • 右键单击您的项目,选择构建路径。在库选项卡中,您是否看到 Maven 依赖项?如果是这样,servlet-api 是您的 pom.xml 中的依赖项吗?
  • @SotiriosDelimanolis,我刚刚从下面的答案中添加了它,它删除了所有错误,除了:javax.servlet.annotation
  • javax.servlet.annotation 用于servlet 3.0。检查 here 的依赖关系。

标签: java eclipse maven servlets


【解决方案1】:

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

<project>
.
.

<dependencies>
  <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
  </dependency>
</dependencies>
.
.
</project>

使用您的项目使用的正确版本

【讨论】:

  • 谢谢,这似乎对我有用。如何确定我的项目使用的是哪个版本的 servlet-api?
  • 如果您尝试使用 servlet 3.0 功能,例如基于注释的 servlet 等。如果您使用的任何其他框架仅与某些版本的 servlet api 兼容,则可以选择 3.0,然后使用该版本, 通常这些是决定因素
  • 如果你在 Eclipse 的本地 tomcat 实例上运行它,不要忘记将 &lt;scope&gt; 设置为 provided
  • @SotiriosDelimanolis,它现在可以与&lt;scope&gt;provided&lt;/scope&gt; 一起使用,但是如果我想将它打包为一个war 文件并在tomcat 服务器上运行它,那么我需要进行哪些更改?
  • @Chaos 你不是来自 Maven 方面。由于提供的范围,maven 在生成war 时不会为该库添加 jar。提供的全部要点是某些容器(tomcat)将在运行您的应用程序时在类路径上提供该库。确保您的 Tomcat 服务器足够新,可以运行 servlet 3.0。
猜你喜欢
  • 2010-10-04
  • 1970-01-01
  • 1970-01-01
  • 2013-07-08
  • 1970-01-01
  • 2016-06-01
  • 2023-03-04
  • 2011-04-29
  • 2021-08-18
相关资源
最近更新 更多