(神奇,明明記得以前記錄過一篇,整合tomcat jar、war。。的文章,找不到了,全部特地記錄一下,如下摘自txt記錄文檔)html
先本身新建了項目,把dubbo-consumer.xml 配置 和 mvc 配置 是分開的,,,坑來了。。。web
一、啓動不了,報各類錯的那種,log、lifeCycle。。。spring
先是本身各類配置Artifact、deployed都是啓動報錯apache
後面用在IDEA配tomcat裏面,用提示自動配的好了。。。。api
》》》Project Setting -- Artifacts:spring-mvc
(a)先:+ Web Application -- Exploded(第二個) -- From Modules -- 選中,(選完裏面把路徑改到target下)緩存
》》》(大功告成)項目報500了。。。,並且壓根沒必要要配別的,就是接下來的Artifacts的那個tomcat
500的錯還算明顯,mvc.xml裏面配了限制文件上傳bean,卻沒有用到的地方。。。mvc
---------後面,maven clean了一次以後,又所有404了,,,,,且tomcat webapp下面沒有看到war包什麼的。。。app
(b)因而,+ Web Application -- Exploded(第三個) -- From 上面的exploded -- 選中(第一次忘了改路徑,仍是404),
路徑改到target下面後,仍是404,且tomcat webapp 和 target下面文件沒有變化(即沒有出現war包什麼的)
再因而,把tomcat裏面的配置改爲了(b)配置的war包,並改路徑 / 。。。。仍是404
=============苦逼臉,,,,最後包jar包配置所有刪了,又配成了(a)同樣的,包括tomcat,啓動,都OK了,dubbo也是好的(最終解決方案)
=======有不少神奇的東西,是沒法用人類來解釋的,,,(大概懷疑是tomcat存在緩存機制,可是一臉懵逼啊2019-07-10 18:45)
二、又遇到了下一個問題:所有報404
在mvc.xml 裏面加上了兩行配置,且同時把tomcat配置裏面,Deploy裏面,長長的jar包名稱改爲 單斜杆 / 了;
<mvc:default-servlet-handler/>
<mvc:annotation-driven />
三、、、、、、好了,controller能夠正常訪問了,可是 NPE 它來啦。。。
最終解決參考:http://www.javashuo.com/article/p-oawvzyih-eg.html,就是把 mvc 和 dubbo 的 xml 配置放一塊兒,,,開始循環40四、40四、404。。。
=============上面的只是在一個demo上的測試,因而把上面的配置移到了公司的項目裏面(配置多、maven多層那種),,,NPE,,,它又來了,,,
發現把dubbo的配置放在 mvc 掃描 以前,仍是不行,,,
次日早上來,又通讀了幾篇博文,發現最終的解決辦法是漏了一個註解啓動標籤:<dubbo:annotation />,因此最終spring-mvc.xml整合dubbo的配置是:
<!--<mvc:annotation-driven />--> <!-- 這裏必定不能少,但demo項目並無也是OK的,大神請賜教 --> <dubbo:annotation /> <!-- 提供方應用信息,用於計算依賴關係 --> <dubbo:application name="meerkat-web-consumer" /> <!-- 使用zookeeper註冊中心暴露服務地址 --> <dubbo:registry address="zookeeper://localhost:2181" /> <dubbo:annotation package="com.meerkat.web.control.*"/> <context:component-scan base-package="com.meerkat.*" />
解決的思路參考:https://blog.csdn.net/qq_16414307/article/details/50328481
另外,對spring啓動配置文件加載順序不瞭解的能夠看看這篇:https://blog.csdn.net/lchpersonal521/article/details/81837583,並且這篇文章講的是如何用JavaBean的配置dubbo的
固然,最後也附上有關pom配置:
<!-- dubbo集成包--> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.3</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.12</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.6.0</version> </dependency> <!-- 本身打包發佈的服務接口,api --> <dependency> <groupId>com.example</groupId> <artifactId>dubbo-api</artifactId> <version>1.2.0</version> </dependency>