Maven整合SSM框架出现的问题总结

最近使用SSM和Maven 进行整合开发,期间出现了很多很多折磨人的Bug,这篇文章进行一下总结,因为出错当时没有截图,故此本文主要讲解决问题的思路。

Bug 1、Bean无法注入

如图所示,代码deptMapper下划红线(此图是我人工画上去的)
在这里插入图片描述
这个问题其实折磨了我身边很多人,网上说这个问题其实没有关系,不影响运行,但因为我很多同学都是这个错误,而它爆红线也最显眼,所以我们默认觉得就是这个红线的问题,因此集中火力解决它,但最后也没结果。

所以这个问题可以不必管,事实证明它真的不碍事,但可能有点碍眼。如果实在看不惯,可以参考以下解决办法。
在这里插入图片描述

Bug 2、莫名画红线

我真一看到红线都烦,今天一打开项目右侧Plugins处和Dependences里的几个包就报错,明明昨天还没有问题,所以我坚信不是我的问题。重启IDEA,解决。

IDEA是个什么脾气我至今也没摸透,反正之前用Eclipse的时候一有错那肯定是代码出错了,所以每次报错我都理所当然的怀疑自己,但IDEA这个工具成功让我放过了我自己(有时候还真不是我的错)。
在这里插入图片描述

Bug 3、org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

报这个错的时候它说我的Mapper找不到,看了网上的各种解决办法,大多是在说mapper和mapper.xml的位置啊,名称啊,参数啊啥的都要保持一致,具体如下:

  1. DAO 接口名一定要与 Mapper 文件的名称一模一样

  2. Mapper 文件中的 namespace 路径一定要与 DAO 接口的路径一致

  3. 还有一点特别重要,即 Mapper 文件必须要放置到 resources 目录中,否则不会被编译

  4. resources 目录中的 Mapper 文件的路径一定要与 DAO 接口的路径完全一致

我看了一遍又一遍,完全一致啊,没问题啊,可是错误仍然在啊,生气!!!然后就在这时我看到了一篇博客,简直救了我的命,我从来没想到这还能错。

我的DeptMapper接口在java下的com.baidu.dao,DeptMapper.xml在resources下的com.baidu.dao,路径完全一样啊是不是? 不是!

然后我又检查了target,发现DeptMapper和DeptMapper.xml没有编译到一个文件夹下,一个在com下的baidu下的dao,一个在com.baidu.dao,不在一个文件夹,当然找不到DeptMapper。然后我就在resources下重新建了一个com.baidu.dao,不过这次建的时候文件夹名称是com/baidu/dao这样写的
在这里插入图片描述
(之前是com.baidu.dao这样写的,我不知道这为啥出错,我同学就是这样写的就没出错),然后把xml挪过来,之前那个com.baidu.dao删掉,重新编译运行,成功!!!

Bug 4、服务注册不到zookeeper

检查了各种IP,以及zookeeper版本问题,依然没有解决。看了网上各种解决办法,又说到要关闭防火墙,本网络小白以为本机widdows防火墙关闭就完事了,而且一直坚称关了关了,结果:真香。Linux防火墙开的稳稳的,能注册进去才怪了。关闭防火墙,服务成功注册到zookeeper,离成功又近了一步!!

Bug 5、pojo没有实现Serializable接口

控制台出现了从数据库查到的信息,但是报错,提示没有实例化。pojo类实现了Serializable接口之后,结果成功出现。因为是网络传输,所以必须要将对象转换为字节流才能够进行传输,所以在分布式应用中,你就得实现序列化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值