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