建立 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包
相关文章
相关标签/搜索