Tomcat启动失败,报ClassNotFoundException
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下实实在在的又这些配置,然后就一直在找代码是否哪里写错了,改了好几次,历经艰难险阻,终于发现了问题所在,下面分享解决方法。
解决方法:
找不到文件首先看自己代码的相关配置是否有问题,如果自己写的类名错了,当然找不到文件了。
如果配置无误,看pom.xml中相关的spring、springMVC、Mybatis的jar包是否都配置了,并且要注意spring相关jar包如果是5.0版本以上的,mybatis的jar包需要2.0版本以上。
如果以上两条都没有问题,基本上都是第三种问题了,如下图所示步骤:
打开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相关推荐
- tomcat启动不报错但不加载war
Linux环境下tomcat启动失败的原因有很多,对于有错误的比较好排查,但对于没有报错的情况,只能凭经验来判断: 1.判断tomcat版本是否适合当前项目不能一味使用高版本tomcat,有些情况不兼 ...
- 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 ...
- 转: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 ...
- 解决Tomcat启动失败:严重 [main] org.apache.catalina.util.LifecycleBase.handleSubClassException 初始化组件失败
在安装和配置Tomcat的过程中,出现了Tomcat启动失败的问题. 21-Oct-2022 13:41:57.148 严重 [main] org.apache.catalina.util.Lifec ...
- pod挂载nas启动失败报错:unable to mount volume xxxx Timeout waiting for mount paths to be created
深夜你熟睡时,用户打来电话.大哥我在上线我的应用怎么突然起不来了.快帮我看看,再过一个小时店铺就开门了. 核实pod状态 打开电脑登入环境,使用kubectl get pod 查询到用户的pod处于创 ...
- tomcat启动失败无权限_Tomcat启动不了原因 Tomcat启动失败解决方法
Tomcat启动不了怎么办?本文主要为大家分析几种Tomcat启动失败的原因以及解决方法,详情如下: 情况一: 运行Tomcat的启动文件startup.bat,弹出黑窗口,直接闪退. 失败原因分析: ...
- linux tomcat启动失败的原因,Linux平台Tomcat启动失败问题排查
部署在 Linux 服务器上边的 Tomcat服务通常在项目更新的时候需要重新启动,但是会由于各种原因,导致 Tomcat 启动失败,本文将以Linux 发行版 centOS 7 系统为例介绍两种 T ...
- tomcat启动失败无权限_无法访问tomcat怎么办_电脑tomcat启动成功访问不了解决方法...
2017-06-13 16:36:18 我们在网上下载安装Tomcat,Win7系统直接启动解压缩后的Tomcat/bin/startup.bat,发现无法正常启动.然后使用浏览器访问地址均无法正常访 ...
- DataNode 启动失败报错 Incompatible clusterIDs
文章目录 DataNode 启动失败报错 Incompatible clusterIDs 信息 报错摘要 问题描述 问题原因 分析步骤 解决办法 参考 DataNode 启动失败报错 Incompat ...
最新文章
- 数据库设计Step by Step (9)——ER-to-SQL转化
- 基础提供程序在 Open 上失败
- 关于webSocket建立前后端连接,并进行心跳机制的实现
- Hadoop配置文件参数详解
- java gzip 解压文件_Java实现文件压缩与解压[zip格式,gzip格式]
- fgets阻塞 stdin 退出_来自stdin问题的fgets[c]
- [react] 如何给非控组件设置默认的值?
- 前端学习(1602):create-react-app基本创建
- “一加一减”的两种说话技巧
- python合并文件夹下的文件_Python实现合并同一个文件夹下所有PDF文件的方法示例...
- mongodb 远程连接
- Unity2D 小游戏之 RocketMouse
- android设置计算器页面布局,Android计算器界面布局
- 科学计算机clr,怎么用科学计算器解方程?
- Quartz定时任务框架(一)
- photoshop cs4 注册
- Sharepoint 2010 学习资源总结
- 雷达回波视频预测核心问题及关键技术纪要
- 使用JDBC 获取相关的数据
- 【MockJS】使用MockJS模拟数据 (超级详细)