引自oschina回复
出现空指针的原因是:spring mvc扫描的时候根本无法识别@Reference ,同一方面,dubbo的扫描也无法识别Spring @Controller ,所以两个扫描的顺序要排列好,
如果先扫了controller,这时候把控制器都实例化好了,再扫dubbo的服务,就会出现空指针。
将springMVC的配置与dubbo配置写在一个配置文件中,注意顺序
<mvc:annotation-driven />
<!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
<dubbo:application name="dubbo-consumer" owner="programmer" organization="dubbox" />
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
<dubbo:consumer timeout="30000" />
<!-- <dubbo:reference id="demoService" interface="com.dubbo.service.DemoService"/> -->
<dubbo:annotation package="com.dubbo.controller" />
<!-- 把标记了@Controller注解的类转换为bean -->
<context:component-scan base-package="com.dubbo.controller" />