初识dubbo之暴露和引用服务(三)

            前面已经介绍了dubbo是什么,用来做什么,以及监控中心zookeeper的安装,接下来讲讲将其应用到tomcat工程项目中……

(一)项目结构展示

        1、 两个maven同级项目,一个发布服务,一个使用……

(二)准备工作,添加依赖、约束文件

        1、分别对两个工程添加依赖,

             这里注意,因为加入dubbo依赖,会传递其依赖的spring2.x的版本依赖,而本maven工程已经添加spring4.x的依赖,所以这里要除去……

    

        2、约束

(三)开启zookeeper监控中心服务

(四)配置文件以暴露和引用服务

        1、service服务层发布服务

              第一项是所起的名字,接着是注册中心服务的主机地址及端口,第三项是暴露服务的端口,

              如果还有其他工程同时发布服务,那么要另外使用别的端口号,最后是发布的服务的接口规范,要提供实现类以引用对象。。。

        2、web表现层引用服务

              第一项名字,接着zookeeper注册中心地址,最后是要引用的服务。。。

(五)进行网络传输的pojo要实现序列化接口

          implements Serializable

(六)重新将maven工程安装到本地仓库

          maven install

(七)tomcat插件的测试使用

          将表现层工程pom文件改造,端口不要同服务层的8080,运行时,先运行服务层再运行表现层,tomcat7:run。。。

        运行结果:

(八)可能出现的异常

           控制台打印:com.alibaba.dubbo.remoting.TimeoutException

           页面打印: Request processing failed; nested exception is com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method getItemById in the service cn.e3mall.service.ItemService. Tried 3 times of the providers [192.168.244.1:20880] (1/1) from the registry 192.168.244.128:2181 on the consumer 192.168.244.1 using the dubbo version 2.5.3. Last error is: Invoke remote method timeout. 

            解决: 在服务和表现层的spring配置文件中加入如下:

           其实同个问题可能导致的原因有千百种,这里我只是利用此种方法而又刚好解决了而已……

      最后,

              由于使用不多,接触少,如有错漏的地方欢迎指出、批评,多谢!

原文地址:https://www.cnblogs.com/panshu-1234/p/9740153.html