继续更新
使用注解来构建dubbo服务的时候。在说明文档中写到可以不写 package 即默认在所有的包中搜索注解。经过测试验证(dubbo 2.5.3)是不正确的。
即这几种写法都是不行的:
<dubbo:annotation />
<dubbo:annotation package="" />
<dubbo:annotation package="*" />
如果需要全局搜索,要在 package 写入最顶层的 包名称 即可 。
例如 服务所在包为: dpjar.dubbo.service.impl
那么以下两个写法都是可以的。
<dubbo:annotation package="dpjar.dubbo.service.impl" />
<dubbo:annotation package="dpjar" />
同理 客户端也是一样。
-----------------------------------------------------
目前注解还有一些问题。
如果使用 spring 配置文件 xml 的方式进行服务注入,任何形式都没有问题;(参见前面的例子)
服务端为普通jar工程,使用注解也是没有问题的;
但是服务端如果是web工程,使用注解就会出现,调用的时候,服务为null的情况。
具体原因,我还没有查到。如果有知道的同学,请留言告诉我。不胜感激
------------------------
问题已经解决:
加上如下配置
<dubbo:consumer check = "false"/>
原因:
使用java工程做服务端的时候,都是先把java服务启动起来之后,再启动服务器去消费。此时,注入服务肯定不会出错;
使用spring 配置文件的时候,是在服务配置的时候,标识了 check=“false” (具体参见实例代码),所以也不会出错;
使用注解的时候,就需要在一个统一配置里,将启动检查项的设置给标识进去。
收工。