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

每次請求,都會下單,測試成功!

相關文章
相關標籤/搜索