javax.servlet.ServletException : java. lang.NoClassDefFoundError:javax/servlet/ServletInputStream

标签 java tomcat servlets

我在一个简单的 tomcat jsp 项目中遇到了这个错误。我在谷歌上阅读的文章暗示我应该在我的项目中包含 servlet-api.jar。我就是这样做的,但没有用。有人对此有任何想法吗?我的 JRE 中有 sql-connector,构建路径中有 sql-connector.jar 和 cos.jar。

最佳答案

The articles I've read on google implies that I should include servlet-api.jar in my project. I did just that but it is not working

你不应该那样做。这是带来更多麻烦的秘诀。另见 How do I import the javax.servlet API in my Eclipse project?从您的项目中删除这些文件。

回到您最初的问题,我知道您在尝试通过在您的项目中包含特定于 servlet 容器的 JAR 文件来解决它之前就已经遇到了这个问题。

javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/servlet/ServletInputStream

如果您在类路径中的错误位置包含了一个 JAR 文件,而该 JAR 文件又依赖于 javax.servlet.ServletInputStream 类,则会发生这种错误,即类加载器所在的位置不知道由 servlet 容器本身加载的类。例如,当您将 Apache Commons FileUpload JAR 文件包含在 JRE 自己的 JRE/libJRE/lib/ext 文件夹中而不是 webapp 自己的 /WEB- INF/lib 文件夹。您应该将特定于应用程序的类放入 JRE 库中。从 JRE 库中删除这些文件。这是初学者在使用 javac 而没有正确的 -cp/-classpath 参数时遇到编译错误时常见的错误。

关于javax.servlet.ServletException : java. lang.NoClassDefFoundError:javax/servlet/ServletInputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9184500/

相关文章:

java - 在 GWT 应用程序中处理授权

java - 如果表单字段包含空格,Spring 命令对象将针对整数字段抛出 NumberFormatException

java - Jenkins Java编译导致Java崩溃

java - 如何限制每秒的网络请求以避免垃圾邮件和拒绝服务

java - Spring Boot JPA 应用程序无法从 Spring Boot 2.0.2 启动,但可以在 Spring Boot 1.5.13 中正常运行

java - 类路径中的 Couchbase 属性文件

java - spring-boot 应用程序的外部配置

spring - 使用 spring 加载带有 jersey/jax-ws 的 jetty 时,ServletContext 为 null

java - 模拟类的构造函数内的方法

java - 用 JDK 11 替换 wsimport