栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Servlet[springmvc]的Servlet.init()引发异常;

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Servlet[springmvc]的Servlet.init()引发异常;

说明:

(1)为什么写这篇博客?:在【RESTful开发风格2:RESTful开发风格初体验二:开发第一个RESTful风格的项目;】中遇到了【Servlet[springmvc]的Servlet.init()引发异常】问题;这篇博客记录一下;

(2)错误原因简述:【Spring MVC的DispatcherServlet初始化的同时,也加载applicationContext.xml,初始化IoC容器了】→【由此,如果IoC容器不能正常初始化,那么DispatcherServlet也不能正常初始化】→【所以,异常原因很可能是applicationContext.xml文件出问题了】; 

目录

一:异常情况展示;

二:异常分析与排除;

寻找错误原因: 

排除错误: 


 

一:异常情况展示;

启动Tomcat服务器后,报错信息:报错信息太长了,这儿就复制了部分;

11-Nov-2021 01:34:59.121 信息 [RMI TCP Connection(3)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
11-Nov-2021 01:34:59.387 信息 [RMI TCP Connection(3)-127.0.0.1] org.springframework.web.servlet.frameworkServlet.initServletBean Initializing Servlet 'springmvc'

…………………………
…………………………
…………………………
11-Nov-2021 01:35:07.857 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [D:apache-tomcat-8.5.64webappsmanager]
11-Nov-2021 01:35:07.938 信息 [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
11-Nov-2021 01:35:07.953 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[D:apache-tomcat-8.5.64webappsmanager]的部署已在[96]毫秒内完成

然后,浏览器访问时的报错信息:浏览器上报错的信息,其实和Tomcat服务器那儿的报错信息是一样的:

其中的第一行报错信息是:【有一个name=conversionService的bean,是没有的】;

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.handler.MappedInterceptor#0': Cannot create inner bean '(inner bean)#7cdfbb93' of type [org.springframework.web.servlet.handler.ConversionServiceExposingInterceptor] while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#7cdfbb93': Cannot resolve reference to bean 'conversionService' while setting constructor argument; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'conversionService' available

二:异常分析与排除;

寻找错误原因: 

通过报错信息可以看到,是Spring MVC的DispatcherServlet无法初始化;

……………………………………………………

而,可以发现我们初始化DispatcherServlet的时候,是需要加载applicationContext.xml(初始化IoC容器)的;

那么,很自然就能想到,之所以DispatcherServlet无法初始化,是不是因为在初始化IoC容器的时候出现问题了呐?自然,就会想到,是不是applicationContext.xml中【是否存在无法初始化的bean】或者【applicationContext.xml文件哪儿配置错了嘞】;

……………………………………………………

再瞅一眼报错信息:通过报错信息,也发现是【有一个name=conversionService的bean,是没有的】;

……………………………………………………

查看applicationContext.xml中的内容,果然发现了一个无法被初始化的bean“conversionService”;


 即,错误原因是:因为抄了旧代码,而旧代码没有处理干净:没有抄“conversionService”的bean实体,但是却抄了“conversionService”。所以,IoC容器初始化失败,从而导致DispatcherServlet也不能正常初始化了。

排除错误: 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/462201.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号