在学习springmvc时运行本地的tomcat服务器报一个或多个listeners启动失败,下面是我所写的两个监听器用于创建spring容器和域对象
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 配置监听器,监听request域对象的创建和销毁的 --> <listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener>
还有一个编码格式设置过滤器
我这里代码写的没有问题,所以关键在于版本和依赖
1.首先说我这里的解决办法,说起来很可笑,竟然是本地tomcat版本问题,之前用的10版本,web.xml文件用的3版本,将web文件头限制改为4版本,tomcat改为8版本,问题圆满解决。
头文件代码:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0" metadata-complete="true">
学spring感觉比较麻烦的就算各种依赖版本冲突问题,以至于我在向maven中pom文件导入依赖时都要在chatgpt上问下各种版本对应问题,没想到最后在tomcat的版本上栽了跟头,就因为这么一个小问题耽误了两三个小时,写出来就是希望能够让某些也是因为版本出现问题的道友快速排除,因为网站中大多数对于这个问题的解决方式都在说是缺少依赖的问题,希望因为版本问题出现报错的道友们不会在这个上面浪费太多时间。
2.依赖问题
这个问题也碰到了,昨天刚用第二种方式解决了这个问题第二天就又爆出了同样的报错,这回的原因是web项目中没有lib文件夹,自己创一个重导一下依赖的问题,网站中对于出现这个原因的有很多而且也说的比较细致,我就不多说了,各位加油~
在web-inf目录上右键新建一个文件夹起名叫lib
选中lib文件夹点击上面的+号,选择第一个
将依赖全部选中点击ok即可
3.web.xml文件写错问题
写错就没办法了,改吧,比如可能servlet初始化没有加下面标签
<load-on-startup>1</load-on-startup>