• 72827

    文章

  • 665

    评论

  • 17

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

mvc项目改造为dubbo项目

撸了今年阿里、腾讯和美团的面试,我有一个重要发现.......>>

前言

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

mvc项目

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

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

mvc-service(项目结构)

----common (公共模块)

----controller  

----order(订单模块)

----product (产品模块)     

----trade (交易模块)  

----user(用户模块)

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

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


695856371Web网页设计师②群 | 喜欢本站的朋友可以收藏本站,或者加入我们大家一起来交流技术!

欢迎来到梁钟霖个人博客网站。本个人博客网站提供最新的站长新闻,各种互联网资讯。 还提供个人博客模板,最新最全的java教程,java面试题。在此我将尽我最大所能将此个人博客网站做的最好! 谢谢大家,愿大家一起进步!

转载原创文章请注明出处,转载至: 梁钟霖个人博客www.liangzl.com

0条评论

Loading...


发表评论

电子邮件地址不会被公开。 必填项已用*标注

自定义皮肤
注册梁钟霖个人博客