mvc项目改造为dubbo项目

前言

前面的博客中写过了,maven构建项目,整合ssm,但是那个整合几乎没有业务逻辑,纯粹的一个调用,现在想将传统的mvc项目改造为一个dubbo项目,之前的那个例子不能够满足,需要将原有的simplemavendemo进行改造,将业务明确的区分出来,在用改造后的mvc项目为基础,改造成一个dubbo项目,我们以一个电商项目为例

mvc项目

代码地址:晚上回去补上

逻辑:首先用户登录,然后选择产品,创建订单,实现订单交易,最后查看订单信息

mvc-service(项目结构)

----common (公共模块)

----controller  

----order(订单模块)

----product (产品模块)     

----trade (交易模块)  

----user(用户模块)

dubbo项目

代码地址:晚上回去补上

改造步骤

1  创建项目               groupId:com.soa   artifactId:soa-parent
2  创建module             以user为例子 soa-user-api  soa-user-core
3  先改动soa-user-api     只有domain 和facade
4  在改动soa-user-core    将mvc user中剩余东西移入,即facadeImpl core mapper
5  pom文件迁移            先移动parent中的pom,去掉servlet,在移动soa-user-core中的pom,去掉version,同时依赖soa-user-api(因为core中有facade实现)
6  迁移xml                all.xml datebase.xml context.xml   UserMapper.xml
7  拆分数据库             每个模块对应一个数据库,User模块有自己的数据库
8  发布服务               user-provider.xml   <bean ---> <dubbo service --->
9  pom引入dubbo的坐标     parent和core中分别引入
10 dubbo的配置文件        dubbo.property 从源码中粘一份过来
11 写一份启动脚本         test类中写个main,具体内容从源码中粘贴

遇到的问题

问题1,一直报dubbo这个包找不到,原因是,maven指定的镜像是阿里的dev的,而dev的仓库中,没有这个版本的
问题2,单模块启动的时,一直报错NoClassDefFoundError org/apache/curator/RetryPoliy 这个原因是使用zookeeper注册中心,而本地启动的时候,使用的是multicast,dubbo.registry.address=multicast://224.5.6.7:1234
参考 https://dubbo.gitbooks.io/dubbo-user-book/content/references/registry/multicast.html
问题3:idea的tomcat部署项目问题,一直被这个问题困扰,在tomcat的插件中,选择article,选择对应的war,因为war包才是部署的<packaging>war</packaging>,<packaging>pom</packaging>是别人依赖的,插件会自动检测为war的moudle,然后自动打包,所以即便你没有打包,在添加的时候,仍然是有war包可选,最后就是tomcat的启动问题了,有的时候,看着好像是启动了,实际上启动的是个空的tomcat,所以,打印日志就一点点,真正启动的时候,启动日志会打印很多
问题4:请求到了,但是500,jdbc连接失败,原因在于,修改数据库配置,这里有两份,一份是在test里面,一份是在conf里面,要全部改掉,改完之后,全局搜素查下,有没有改全

测试

发现四个拆分的模块都分别启动了,最后用tomcat启动soa-consumer-web,最后请求

http://localhost:8080/soa-consumer-web/test

每次请求,都会下单,测试成功!

猜你喜欢

转载自my.oschina.net/u/3523594/blog/1818129