SSM整合,Tomcat启动失败,在日志中出现 ClassNotFoundException过滤器文件找不到

问题: 最近刚学习了解Spring、SpringMVC、Mybatis,准备做一个SSM整合的简单项目。本来以为应该很简单,毕竟只是简单的CRUD操作,但是真正做的时候就会出现各种问题,其中一个刚接触SSM整合很容易造成的就是ClassNotFoundException,如下图所示:

java.lang.ClassNotFoundException: org.springframework.web.filter.CharacterEncodingFilterat org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1364)at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1187)at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:539)at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:520)at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:150)at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:249)at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:102)at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4566)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5203)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:706)at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1775)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.base/java.lang.reflect.Method.invoke(Method.java:564)at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:288)at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:809)at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:460)at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:408)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.base/java.lang.reflect.Method.invoke(Method.java:564)at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:288)at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:809)at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)at java.management/com.sun.jmx.remote.security.MBeanServerAccessController.invoke(MBeanServerAccessController.java:468)at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1466)at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1307)at java.base/java.security.AccessController.doPrivileged(AccessController.java:691)at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1406)at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:827)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.base/java.lang.reflect.Method.invoke(Method.java:564)at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:359)at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)at java.base/java.security.AccessController.doPrivileged(AccessController.java:691)at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:587)at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705)at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704)at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)at java.base/java.lang.Thread.run(Thread.java:832)

查看日志就是一堆这样的错误,大概意思是我在web.xml中配置的字符乱码过滤器找不到文件,也有可能是Spring的拦截器找不到。但是web.xml下实实在在的又这些配置,然后就一直在找代码是否哪里写错了,改了好几次,历经艰难险阻,终于发现了问题所在,下面分享解决方法。

解决方法:

  1. 找不到文件首先看自己代码的相关配置是否有问题,如果自己写的类名错了,当然找不到文件了。

  2. 如果配置无误,看pom.xml中相关的spring、springMVC、Mybatis的jar包是否都配置了,并且要注意spring相关jar包如果是5.0版本以上的,mybatis的jar包需要2.0版本以上。

  3. 如果以上两条都没有问题,基本上都是第三种问题了,如下图所示步骤:
    打开File-> Project Structure


发现WEB-INF下没有lib包…因此自己项目下根本没有导入jar ,(导入了但没完全导入)


右键项目模块点击Put into Output Root 之后项目下就有lib包了,然后apply,最好点击OK,Tomcat正常启动,见到了久违的页面…hhh

总结: 在使用IDEA进行new一个新的简单的maven项目时,web是我们右键模块添加的框架,因此会存在,模板下面没有自动导入lib目录或者lib目录下的jar不全,之前学习的过程中并没有遇到这个问题,可能是换了不同的IDEA,因此我们在做项目时,应该最后添加一下,防止我们换台电脑换个IDEA的配置就会出现一些莫名其妙的错误。

Tomcat启动失败,报ClassNotFoundException相关推荐

  1. tomcat启动不报错但不加载war

    Linux环境下tomcat启动失败的原因有很多,对于有错误的比较好排查,但对于没有报错的情况,只能凭经验来判断: 1.判断tomcat版本是否适合当前项目不能一味使用高版本tomcat,有些情况不兼 ...

  2. maven项目中Tomcat启动失败:Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.1:run

    maven项目中Tomcat启动失败:Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.1:run (defa ...

  3. 转:Tomcat启动失败 提示Server Tomcat v7.0 Server at localhost failed to start.六种解决方法

    转:https://my.oschina.net/u/4391471/blog/3298034 Tomcat启动失败,提示Server Tomcat v7.0 Server at localhost ...

  4. 解决Tomcat启动失败:严重 [main] org.apache.catalina.util.LifecycleBase.handleSubClassException 初始化组件失败

    在安装和配置Tomcat的过程中,出现了Tomcat启动失败的问题. 21-Oct-2022 13:41:57.148 严重 [main] org.apache.catalina.util.Lifec ...

  5. pod挂载nas启动失败报错:unable to mount volume xxxx Timeout waiting for mount paths to be created

    深夜你熟睡时,用户打来电话.大哥我在上线我的应用怎么突然起不来了.快帮我看看,再过一个小时店铺就开门了. 核实pod状态 打开电脑登入环境,使用kubectl get pod 查询到用户的pod处于创 ...

  6. tomcat启动失败无权限_Tomcat启动不了原因 Tomcat启动失败解决方法

    Tomcat启动不了怎么办?本文主要为大家分析几种Tomcat启动失败的原因以及解决方法,详情如下: 情况一: 运行Tomcat的启动文件startup.bat,弹出黑窗口,直接闪退. 失败原因分析: ...

  7. linux tomcat启动失败的原因,Linux平台Tomcat启动失败问题排查

    部署在 Linux 服务器上边的 Tomcat服务通常在项目更新的时候需要重新启动,但是会由于各种原因,导致 Tomcat 启动失败,本文将以Linux 发行版 centOS 7 系统为例介绍两种 T ...

  8. tomcat启动失败无权限_无法访问tomcat怎么办_电脑tomcat启动成功访问不了解决方法...

    2017-06-13 16:36:18 我们在网上下载安装Tomcat,Win7系统直接启动解压缩后的Tomcat/bin/startup.bat,发现无法正常启动.然后使用浏览器访问地址均无法正常访 ...

  9. DataNode 启动失败报错 Incompatible clusterIDs

    文章目录 DataNode 启动失败报错 Incompatible clusterIDs 信息 报错摘要 问题描述 问题原因 分析步骤 解决办法 参考 DataNode 启动失败报错 Incompat ...

最新文章

  1. 数据库设计Step by Step (9)——ER-to-SQL转化
  2. 基础提供程序在 Open 上失败
  3. 关于webSocket建立前后端连接,并进行心跳机制的实现
  4. Hadoop配置文件参数详解
  5. java gzip 解压文件_Java实现文件压缩与解压[zip格式,gzip格式]
  6. fgets阻塞 stdin 退出_来自stdin问题的fgets[c]
  7. [react] 如何给非控组件设置默认的值?
  8. 前端学习(1602):create-react-app基本创建
  9. “一加一减”的两种说话技巧
  10. python合并文件夹下的文件_Python实现合并同一个文件夹下所有PDF文件的方法示例...
  11. mongodb 远程连接
  12. Unity2D 小游戏之 RocketMouse
  13. android设置计算器页面布局,Android计算器界面布局
  14. 科学计算机clr,怎么用科学计算器解方程?
  15. Quartz定时任务框架(一)
  16. photoshop cs4 注册
  17. Sharepoint 2010 学习资源总结
  18. 雷达回波视频预测核心问题及关键技术纪要
  19. 使用JDBC 获取相关的数据
  20. 【MockJS】使用MockJS模拟数据 (超级详细)

热门文章

  1. 实践篇(3)RDF查询语言SPARQL
  2. 论《我是如何安慰女友的》
  3. 一维二维水动力,水质模型详解
  4. MapX常用功能代码逻辑
  5. python体育特长标注_铜仁一中2019年招生特长生术科测试项目及要求【模板】
  6. Android设备唯一标识(AndroidID,OAID等 )
  7. mysql笛卡尔积的过程
  8. C语言 extern的用法
  9. 【Yocto】devtool修改源代码
  10. jquery之Uncaught Error: Syntax error, unrecognized expression: #