gpt4 book ai didi

eclipse - 在 pom.xml 中为 Tomcat 7 设置 Servlet/JSP jar

转载 作者:行者123 更新时间:2023-11-28 21:50:31 26 4
gpt4 key购买 nike

我正在使用 JDK 1.6、Maven 2.2.1、Tomcat 7 和 Eclipse Juno(企业版)。

当尝试导入诸如 javax.servlet.* 之类的包时; Eclipse 提示它的类路径(构建路径)中没有它。

因此,我所做的是在我的 pom.xml 文件中包含以下依赖项:

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.3</version>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
</dependency>

在 tomcat 服务器启动期间:

INFO: Deploying web application archive C:\DevTools\tomcat\apache-tomcat-7.0.32\webapps\myapp.war
Dec 20, 2012 4:55:41 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(C:\DevTools\tomcat\apache-tomcat-7.0.32\webapps\myapp\WEB-INF\lib\servlet-api-2.3.jar)
- jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class

为什么要记录这条消息?

此外,我似乎无法在 maven 存储库中找到 servlet-api 3.0 或 jsp 2.2 的正确版本

http://mvnrepository.com/

请帮助我...

最佳答案

Web 应用程序容器负责提供 Servlet/JSP API 和实现文件。使用您当前的 Maven 设置,您会导致这些库文件捆绑在您的应用程序中,从而导致您在日志中看到的类加载器问题。

When trying to import packages such as javax.servlet.*; Eclipse complained that it does not have it inside its classpath (build path).

是的,您需要类路径中的 API 库才能编译依赖于它们的代码。您希望将这些库包含在您的构建 类路径中,同时不将它们包含在最终可部署文件中。通过将依赖库的范围 标识为provided,您可以使用 Maven 来执行此操作。这基本上意味着“编译需要这些库,但最终将由应用程序容器提供,因此实际上不要将它们包含在可部署文件中”。

Also, I can't seem to find the right versions for servlet-api 3.0 or jsp 2.2 in the maven repository

Servlet 3.0 和 JSP 2.2 API 已捆绑在通用 JavaEE Web API 中。这是您需要在 POM 中指定的依赖项。图解:

<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
</dependencies>

关于eclipse - 在 pom.xml 中为 Tomcat 7 设置 Servlet/JSP jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13982955/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com