第一次整合ssm项目时,难免会遇到一些粗心代码问题,本篇文章记录了整合ssm项目报错javax.servlet.ServletException: Servlet.init() for servlet [springmvc] threw exception时,排除bug的思路过程。
- 项目配置好Tomcat,开启测试后浏览器报错
Type:异常报告
消息:Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: A query was run and no Result Maps were found for the Mapped Statement ‘com.jack.dao.BookMapper.queryAllBook’. It’s likely that neither a Result Type nor a Result Map was specified.
描述:服务器遇到一个意外的情况,阻止它完成请求。
1.此时猜测是后端配置文件有误,导致获取不到相应的bean,回到后端测试代码是否有问题
- 进行测试
&emso; 通过配置文件获取到Service类,在控制台上输出想要展示在前端的内容。
- 测试报错
通过代码报错信息发现是因为dao层的类无法正常实现功能
3.检测dao层配置文件与service层配置文件关联是否有问题
通俗来讲是为了检验service类是否能够正常获取到dao的类。通过检查发现dao与service配置文件并没有差错。在往前推,dao的xml配置sql语句检查。
4. 检查dao层xml配置文件的sql语句检查
找到这里我发现了bug来源于在方法上的参数类型,和返回类型的使用失误。导致spring虽然能够获取到dao类,却无法正确执行相应的方法。
总结:
本次记录主要是记录排除bug逻辑,ssm项目中的配置文件信息量大,容易手误,或者一些粗心失误,导致一些bug的出现,所以可以通过到推的方法,一层一层的找到bug所在。