建立 SpringMVC項目 模擬 Dubbo消費端 - 附:IDEA如何正確設置Artifacts

(神奇,明明記得以前記錄過一篇,整合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.*" />
MVC整合dubbo的配置

解決的思路參考: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>
引入dubbo有關的pom包
相關文章
相關標籤/搜索