2 qq 24166417 qq_24166417 于 2014.12.18 11:55 提问

tomcat总是报下面这个错误,该怎么解决啊。。希望各位大神能够帮我解决。。感谢

java.lang.NoClassDefFoundError: Filter
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:529)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:511)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:139)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:105)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4809)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5485)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1247)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1898)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: Filter
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 26 more
2014-12-18 11:39:10 org.apache.catalina.core.StandardContext filterStart
严重: Exception starting filter HibernateFilter
java.lang.NoClassDefFoundError: Filter
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:529)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:511)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:139)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:105)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4809)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5485)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1247)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1898)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: Filter
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 26 more
2014-12-18 11:39:10 org.apache.catalina.core.StandardContext startInternal
严重: Error filterStart
2014-12-18 11:39:10 org.apache.catalina.core.StandardContext startInternal
严重: Context [/MedicineManager] startup failed due to previous errors

6个回答

qq_24166417
qq_24166417   2014.12.18 17:06

配置文件中是这样写的:

<filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>com.lyq.util.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>
<!-- 自定义Hibernate过滤器 -->
<filter>
    <filter-name>HibernateFilter</filter-name>
    <filter-class>com.lyq.util.HibernateFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>HibernateFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
qq_24166417
qq_24166417 我现在出现了这个错误 了。。java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
3 年多之前 回复
qq_24166417
qq_24166417 我换了一个mySQL驱动包,没有报这个错误了。 谢谢你了
3 年多之前 回复
xmt1139057136
xmt1139057136 你的jar包肯定不全,你看看到底少了哪些jar包文件。我下班了,明天再给你看看,你先自己检查检查。多百度搜索搜索!!
3 年多之前 回复
xmt1139057136
xmt1139057136 http://bbs.csdn.net/topics/370193538
3 年多之前 回复
xmt1139057136
xmt1139057136 http://bbs.csdn.net/topics/340104873
3 年多之前 回复
qq_24166417
qq_24166417   2014.12.18 12:04

下面是Hibernate过滤器

public class HibernateFilter implements Filter{
// ThreadLocal对象
private static ThreadLocal threadLocal = new ThreadLocal();
// SessionFactory对象
private static SessionFactory factory = null;
public void destroy() {
if(!factory.isClosed()){
factory.close();
}
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
try {
chain.doFilter(request, response);
} finally{
Session session = (Session)threadLocal.get();
if(session != null){
if(session.isOpen()){
session.close();
}
threadLocal.remove();
}
}
}
public void init(FilterConfig arg0) throws ServletException {
//初始化SessionFactory
try {
Configuration cfg = new Configuration().configure();
factory = cfg.buildSessionFactory();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取Session
* @return Session
*/
public static Session getSession() {
Session session = (Session)threadLocal.get();
if (session == null) {
session = factory.openSession();
threadLocal.set(session);
}
return session;
}
}

u013147600
u013147600   2014.12.18 14:32

不知道是不是 doFilter()中异常处理少了catch导致过滤器启动失败

u013147600
u013147600 回复qq_24166417: 那你断点调试下 看看具体是哪里的错 这样看我是看不错哪里有错
3 年多之前 回复
qq_24166417
qq_24166417 加了catch,还是一样的错误
3 年多之前 回复
qq_24166417
qq_24166417   2014.12.18 16:25

错误是这样的:

严重: Exception starting filter CharacterEncodingFilter
java.lang.NoClassDefFoundError: Filter
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:529)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:511)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:139)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:105)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4809)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5485)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1247)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1898)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: Filter
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 26 more
2014-12-18 16:19:33 org.apache.catalina.core.StandardContext filterStart
严重: Exception starting filter HibernateFilter
java.lang.NoClassDefFoundError: Filter
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:529)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:511)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:139)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:105)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4809)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5485)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1247)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1898)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: Filter
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 26 more
2014-12-18 16:19:33 org.apache.catalina.core.StandardContext startInternal
严重: Error filterStart
2014-12-18 16:19:33 org.apache.catalina.core.StandardContext startInternal
严重: Context [/MedicineManager] startup failed due to previous errors

qq_24166417
qq_24166417   2014.12.18 16:32

CharacterEncodingFilter字节编码过滤器如下:

public class CharacterEncodingFilter implements Filter{

protected String encoding = null;
protected FilterConfig filterConfig = null;

public void init(FilterConfig filterConfig) throws ServletException {
    this.filterConfig = filterConfig;
    this.encoding = filterConfig.getInitParameter("encoding");
}

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    if (encoding != null) {
        request.setCharacterEncoding(encoding);
        response.setContentType("text/html; charset="+encoding);
    }
    chain.doFilter(request, response);
}

public void destroy() {
    this.encoding = null;
    this.filterConfig = null;
}

}

xmt1139057136
xmt1139057136   Rxr 2014.12.18 16:43

这个问题是说,找不到CharacterEncodingFilter这个类。字符编码工具类CharacterEncodingFilter.java。他是spring架包中的一个类,你看看你是不是少了这个jar包。
或者与servlet-api.jar冲突!!!!

        <filter-name>encoding</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>encoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>


qq_24166417
qq_24166417 回复xmt1139057136: 我贴了字节编码过滤器和自定义的Hibernate过滤器
3 年多之前 回复
xmt1139057136
xmt1139057136 回复qq_24166417: 能把你的web.xml贴出来,看一下吗
3 年多之前 回复
xmt1139057136
xmt1139057136 回复qq_24166417: 你搜索一下,看看你的项目中是否存在org.springframework.web.filter.CharacterEncodingFilter这个类
3 年多之前 回复
qq_24166417
qq_24166417 我这个项目没有用到Spring。。用的是Struts+Hibernate+MySQL
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
tomcat7内存溢出错误的一些原因和解决方案
今天在做公司一个工程2个版本的运行时,突然出现新版的工程在tomcat中内存溢出。 因为错误比较明显,但也经过了一些折腾。 我的tomcat版本为最新的7.0.34,eclipse为3.7   在tomcat的wiki上其实对内存溢出和内存错误已经有一定的分析和说明   tomcat内存出错的一些原因:   1、建立的过多的对象,导致堆区内存不足
感谢所有想过要帮我忙的人
<!--.p2 { font-size: 13px; line-height: 20px;}-->   昨晚我正在老七家时,老大打来电话,想让我跟他一起去上街,还有那个女生。我说我在老七家,去不了……  我们老大人很好,很热情,对朋友没得说,这次就是为我着想。前些日子有一次我下班到他那儿去修理电脑(他在工地),要去吃晚饭的时候,他就要叫着他们公司一个女同事(好像是新
菜单程序,c
里面有许多错误,希望大神帮我改一下,十分感谢,拜托了。。有没有哪位大神愿意的
Struts 2权威指南 第一个例子
Struts 2权威指南 第一个例子问题,这个是有错误的,希望大家帮我解决下。
Tomcat-404错误问题总结以及解决办法
404问题 404表示File Not Found, 文件不存在错误。 出现比较多的问题是页面报404错误,因此除了前面的 Tomcat 问题排查 之外,又专门做了这么一个404问题排查的文章,提供问题分析的思路和对策。正确的端口号 出现404错误证明,TOMCAT是启动成功了的。 但是在一台计算机上,可以启动多个端口号不一样的TOMCAT, 所以请确保自己访问的是正确的那个端口号,
怎么解决eclipse报PermGen space异常的问题
最近使用eclipse做开发,使用的服务器是tomcat,但在启动时报了Caused by: java.lang.OutOfMemoryError: PermGen space的异常。 这个错误很常见,于是配置tomcat下的catalina.bat,配置eclipse.ini,各种方法都用过了,不管用!花了好长时间,在几近崩溃的时候找到了下面的解决办法,终于解决了。 为了不走弯路,我
求大神帮我解答一下这个异常怎么解决啊?
五月 17, 2018 9:39:55 上午 org.apache.catalina.core.ApplicationContext log严重: StandardWrapper.Throwablejava.lang.IllegalStateException: required key [com.site.serviceName] not found at org.springframework...
一种跨域单点登录的解决办法
现有多个应用,要求这几个应用统一通过一个网站(假设该网站的域名是login.com)登陆,若一个浏览器上成功登陆后,在同个浏览器下打开其他应用无需再次登陆,也就是一个浏览器只需登陆一次。 首先想到的是用cookie实现单点登陆:登陆成功后,login.com的服务器生成一个唯一的id并保存到一个表中,并向浏览器cookie中写入该id,当其他应用接收到请求时,先检查有无该id,若有则与login
单片机模拟
单片机实验的程序 希望各位大神能帮我一把
tomcat启动超时(timeout)解决方法
web工程部署时需要加载很多类和文件,需要的时间比较长。如果时间超过了45秒,tomcat就会自动退出并且报错。双击tomcat server容器,修改配置文件中的启动时间。进入tomcat配置文件界面后,点击右侧的Timeouts选项,展开里面的配置内容就可以修改启动时间。直接输入具体的启动最大耗时时间或者按上箭头修改具体的值,调节启动时间。修改文之后,一定记得保存修改。按ctrl+s就可以保存...