gpt4 book ai didi

tomcat - java.lang.NoClassDefFoundError : javax/servlet/Filter 错误

转载 作者:行者123 更新时间:2023-11-28 21:48:43 25 4
gpt4 key购买 nike

当我启动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 放在类路径和 tomcat_home/commons/lib 文件夹中

请任何人建议该怎么做。

最佳答案

java.lang.NoClassDefFoundError: javax/servlet/Filter

当您获得来自古老的 Servlet 2.2 容器或更早版本的 servlet.jar 的副本并且该文件在类加载方面的优先级高于 Tomcat 自己的库时,可能会发生此特殊异常。 Filter 类即 introduced在 Servlet 2.3 中。


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

你不应该那样做。 /WEB-INF/lib、“类路径”和 Tomcat 的 /common/lib 文件夹中删除所有特定于 servletcontainer 的库。

Tomcat servletcontainer 已经在其自己的 /lib 文件夹中附带了正确的 API。你不应该在你的 webapp 的 /WEB-INF/lib 中有任何副本,也不应该在类路径的其他地方,也不应该有来自完全不同的 servletcontainer 的副本。

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

另见:

关于tomcat - java.lang.NoClassDefFoundError : javax/servlet/Filter 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8856308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com