java.lang.NoClassDefFoundError: javax/servlet/Filter

编程入门 行业动态 更新时间:2024-10-26 12:30:49
本文介绍了java.lang.NoClassDefFoundError: javax/servlet/Filter的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时送ChatGPT账号..

当我启动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.

如何导入我的 Eclipse 项目中的 javax.servlet API?

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

更多推荐

[db:关键词]

本文发布于:2023-04-30 04:14:26,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1389266.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:NoClassDefFoundError   lang   java   Filter   servlet

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!