java.lang.NoClassDefFoundError: javax/servlet/Filter [英] java.lang.NoClassDefFoundError: javax/servlet/Filter

查看:89
本文介绍了java.lang.NoClassDefFoundError: javax/servlet/Filter的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我启动tomcat时出现这个错误

I am getting this error when i start tomcat

java.lang.NoClassDefFoundError: javax/servlet/Filter
at java.lang.ClassLoader.findBootstrapClass(Native Method)
at java.lang.ClassLoader.findBootstrapClass0(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at      org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1301)
at    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1232)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:207)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:302)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:78)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3666)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4258)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:448)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)

我已经将 servlet.jar 放在 classpath 和 tomcat_home/commons/lib 文件夹中

i have already put the servlet.jar in classpath and tomcat_home/commons/lib folder

请任何人建议该怎么做.

please can any one suggest what to do.

推荐答案

java.lang.NoClassDefFoundError: javax/servlet/Filter

java.lang.NoClassDefFoundError: javax/servlet/Filter

当您获得源自古老的 Servlet 2.2 容器或更早版本的 servlet.jar 副本并且该文件在类加载中优先于 Tomcat 自己的库时,可能会发生这种特殊的异常.Filter 类是引入 在 Servlet 2.3 中.

This particular exception can occur when you have got a copy of the servlet.jar which originated from an ancient Servlet 2.2 container or older and that file got precedence in classloading over Tomcat's own libraries. The Filter class was namely introduced in Servlet 2.3.

我已经把 servlet.jar 放在 classpath 和 tomcat_home/commons/lib 文件夹中

你不应该那样做.从您的 /WEB-INF/lib删除所有 servletcontainer 特定的库,即类路径"和 Tomcat 的 /common/lib 文件夹.

You should not do that. Remove all servletcontainer-specific libraries from your /WEB-INF/lib, the "classpath" and the Tomcat's /common/lib folders.

Tomcat servletcontainer已经在它自己的/lib文件夹中提供了正确的API.您不应在 web 应用程序的 /WEB-INF/lib 或类路径中的其他地方拥有任何副本,也不应在完全不同的 servletcontainer 中拥有任何副本.

The Tomcat servletcontainer already ships with the right APIs in its own /lib folder. You should not have any copy in your webapp's /WEB-INF/lib, nor elsewhere in the classpath, also not the ones from a completely different servletcontainer.

这种尝试下载/复制随机 servletcontainer 特定库的常见初学者错误通常是由于无法通过 javac 或在 IDE 中编译 servlet 类造成的.使用javac时,需要在-cp参数中引用Tomcat的/lib.使用 IDE 时,您需要在项目的属性中将 Tomcat 引用为 Targeted runtime.

This common beginner's mistake of attempting to download/copy random servletcontainer specific libraries is commonly caused by the inability to compile servlet classes by javac or in the IDE. When using javac, you need to reference Tomcat's /lib in the -cp argument. When using an IDE, you need to reference Tomcat as Targeted runtime in project's properties.

这篇关于java.lang.NoClassDefFoundError: javax/servlet/Filter的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆