模拟了一下springboot+dubbo的项目,记录一下自己遇到的问题
1、服务者和消费者都在dubbo平台上找到了,但是没有对应上
原因是:服务者中定义service服务的时候,定义了版本,在消费者调用的时候,需要明确版本,否则就会定义不上
2、消费者调用服务者方法,但是报方法找不到,Invalid bound statement (not found)
我这里是因为多个原因导致的
1)首先服务者的mapper上需要添加@Component,让spring管理
2)还有我的AcccountMapper.xml文件是从单一工程中拷贝出来的,里面的namespace等包路径地址都不对,需要使用mybatis的代码生成器重新生成
3)我的pojo是放在了单独jar包中,因为也要修改AccountMapper.xml里面的pojo的包路径
4)使用了上面的操作,还是发现找不到方法,后来看单一工程,看到pom文件里面放行了xml文件,才发现忘了放行过滤了,在pom文件的<build>节点中添加如下代码
<resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources>
3、方法终于找到了,但是还是报错,大概看了报错信息,有个Serializable字样,想起来pojo的jar中没有将bean实现Serializable接口,去pojo中修改,重新发布
到此,springboot+dubbo可以正常使用了