eclipse - Tomcat 转到 jsp、servlet 等 jar 的 .m2 目录并崩溃

标签 eclipse tomcat maven

我无法让 Tomcat 在我启用 maven 的项目上运行 JSP(Eclipse 3.7,在 Tomcat 6 上带有最新的 m2 插件,在 Eclipse Java EE 中作为服务器运行):

java.lang.NullPointerException
    at org.apache.jsp.index_jsp._jspInit(index_jsp.java:22)

此错误表明 Tomcat 为 JSP、servlet 等提供的 jar 与项目 jar 冲突。不过,似乎一切都已正确设置:

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>servlet-api</artifactId>
  <version>2.5</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>javax.servlet.jsp</groupId>
  <artifactId>jsp-api</artifactId>
  <version>2.1</version>
  <scope>provided</scope>
</dependency>

如果我在 VM 上打开类跟踪,我会看到在启动时来自 Tomcat 的 lib 目录的 jsp jar 被用于 JspFactory:

[Loaded javax.servlet.jsp.JspFactory from file:/C:/tomcat-6.0.28/lib/jsp-api.jar]

当服务器启动并且我准备第一次访问 jsp 页面时,我得到了不同的结果:

[Loaded javax.servlet.jsp.JspFactory from file:/C:/Users/alice/.m2/repository/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar]

因此,出于某种我无法理解的原因,Web 应用程序正在使用 m2 存储库中的 jsp jar,即使 pom.xml 中的范围设置为提供。我已经用尽了谷歌搜索。哪些其他配置问题可能导致此问题?

最佳答案

在过去的几年里,我经常看到 Tomcat Eclipse 插件的各种配置相关问题。

我建议你帮自己一个大忙——放弃这个插件。运行独立的 Tomcat。 这并不难。

将 Tomcat 配置为指向 Eclipse 构建的 war 文件也很容易,这样您就不必显式部署它。

设置独立 Tomcat 实例的调试也非常容易。

好处是您不必处理插件的变幻莫测,一般来说,stuf 就可以正常工作。据我所知,没有任何缺点。

关于eclipse - Tomcat 转到 jsp、servlet 等 jar 的 .m2 目录并崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14166286/

相关文章:

java.lang.ClassNotFoundException : org. hibernate .bytecode.instrumentation.internal.FieldInterceptionHelper

maven - 使用 Spring-boot 应用程序观看 SCSS

eclipse - 从 eclipse 运行 JBoss 服务器 [Adempiere 项目]

eclipse - Eclipse 中关于从所需的 .class 文件间接引用的类型的错误

tomcat - Tomcat 7+ 中的容器级自定义 JXM MBean

tomcat - 没有发送 ViewState

java - 使用 Maven 将依赖项下载到命令行上的目录

java - 从其他 Java 类调用方法

java - Eclipse 中缺少非必需库的必需库

tomcat - 同一 Tomcat 服务器上的新 GoDaddy SSL 证书失败?