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

时间:2012-02-07 21:47:33

标签: java tomcat servlets

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

3 个答案:

答案 0 :(得分:2)

  

我在google上阅读的文章暗示我应该在我的项目中包含servlet-api.jar。我做到了这一点,但它无法正常工作

你应该这样做。这是更麻烦的秘诀。另请参阅How do I import the javax.servlet API in my Eclipse project?从项目中删除这些文件。

回到你最初的问题,我知道你在之前已经面临这个问题你试图通过在项目中包含servlet容器特定的JAR文件来解决它。

  

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

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

答案 1 :(得分:1)

您必须在项目中包含或部署任何servlet / JSP API jar。这样做会带来所有古怪的举止。删除Tomcat已经提供的库。

答案 2 :(得分:0)

ServletInputStream是servlet API的一部分。如果您正在运行支持您正在使用的servlet API版本的tomcat版本,并且如果您的tomcat安装没有损坏,它将起作用。 servlet-api.jar应位于TOMCAT / lib