Error creating bean with name ‘XXX’ defined in file 同时 Servlet.init() for servlet [spring-dispatcher] threw exception 的解决方案

问题描述:

报错:

  • Error creating bean with name ‘***’ defined in file
  • Servlet.init() for servlet [spring-dispatcher] threw exception

描述:

在跟着网上开源项目进行ssm整合的时候,发现在Web 工程 Controller层 配置的时候跳转的代码可以成功跳转,但是一旦加上@Autowired注入时就报以上错误。

网上查找错误原因都没有解决,如果有同样问题请按顺序自查

  1. 是否忘了加@Controller和@Service注释

  2. 是否正确配置了扫描包的位置

  3. 配置信息是否在web.xml文件中添加

  4. 导入的mybatis和Spring-mybatis版本号是否正确

    正确的依赖关系如下
    mybatis和Spring-mybatis版本号

尝试了这么多之后依然没有解决问题。又在网上看到一篇文章,说是因为三层结构没有整合好的问题。
说注释掉web.xml中的核心控制器就可以了。
简直是胡扯、没有核心控制器还叫ssm?

解决方案

如果你的项目上面几个都没有问题那么请检查你的web项目的打包方式是否为war包。

打开你的web工程的pom.xml文件。找是否有这行代码

<packaging>war</packaging>

如果没有请在如下位置加上,或者手动把打包方式改成war
在这里插入图片描述

再次运行tomcat,问题解决了

在这里插入图片描述

Logo

「智能机器人开发者大赛」官方平台,致力于为开发者和参赛选手提供赛事技术指导、行业标准解读及团队实战案例解析;聚焦智能机器人开发全栈技术闭环,助力开发者攻克技术瓶颈,促进软硬件集成、场景应用及商业化落地的深度研讨。 加入智能机器人开发者社区iRobot Developer,与全球极客并肩突破技术边界,定义机器人开发的未来范式!

更多推荐