(神奇,明明记得以前记录过一篇,整合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>