mvc项目改造为dubbo项目

前言

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

mvc项目

代码地址:https://gitee.com/liuhuxiang/mvc-servicegit

逻辑:首先用户登陆,而后选择产品,建立订单,实现订单交易,最后查看订单信息web

mvc-service(项目结构)数据库

----common (公共模块)apache

----controller  api

----order(订单模块)tomcat

----product (产品模块)     mvc

----trade (交易模块)  app

----user(用户模块)dom

dubbo项目

代码地址:https://gitee.com/liuhuxiang/dubbo-soa

soa-parent(项目结构,源码叫dubbo-parent,模仿一下,叫soa-parent)

soa-parent

----soa-common

----soa-consumer-web

----soa-order     (包含 soa-order-api    soa-order-core)

----soa-product (包含 soa-product-api  soa-product-core)

----soa-trade      (包含 soa-trade-api  soa-trade-core)

----soa-user       (包含 soa-user-api  soa-user-core)

改造步骤

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这个包找不到
问题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

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

相关文章
相关标签/搜索