dubbo实战之一:准备和初体验( 四 )

  • 至此 , 服务提供方编码完成 , 直接在IDEA上运行ProviderApplication类即可启动服务 , 启动成功后的日志输出如下图:

dubbo实战之一:准备和初体验文章插图
编码(服务消费方)
  • 现在网络上已经有了服务 , 接下来创建一个消费该服务的工程helloxmldirectconsumer , 一共要创建5个文件 , 创建顺序和功能如下表:

dubbo实战之一:准备和初体验文章插图
  • 完整的文件位置如下图:

dubbo实战之一:准备和初体验文章插图
  • 接下来逐个创建上述文件;
  • 创建名为helloxmldirectconsumer的子工程 , pom.xml内容如下 , 可见刚才新建的二方库practiceinterface也被依赖了:
dubbopracticecom.bolingcavalry1.0-SNAPSHOT4.0.0com.bolingcavalryhelloxmldirectconsumer1.0-SNAPSHOTcom.bolingcavalrypracticeinterface${project.version}org.apache.dubbodubboorg.projectlomboklombokorg.slf4jslf4j-log4j12
  • 编写唯一的java文件ConsumerApplication.java , 里面用了最简单的方法初始化spring环境 , 然后取得服务实例 , 执行过方法后结束进程:
package com.bolingcavalry.helloxmldirectconsumer;import com.bolingcavalry.dubbopractice.service.DemoService;import org.springframework.context.support.ClassPathXmlApplicationContext;public class ConsumerApplication {public static void main(String[] args) throws Exception {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring/dubbo-consumer.xml");context.start();DemoService demoService = context.getBean("demoService", DemoService.class);String hello = demoService.sayHello("world1");System.out.println("result: " + hello);}}
  • 日志配置文件log4j.properties , 内容如下:
###set log levels###log4j.rootLogger=info, stdout###output to console###log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=[%d{dd/MM/yy HH:mm:ss:SSS z}] %t %5p %c{2}: %m%n
  • 在同样位置创建dubbo配置文件dubbo.properties , 内容很简单只有qos的端口设置 , 用于支持telnet命令 , 本例中是用不上的 , 因为远程调用后进程就会结束:
dubbo.application.qos.port=33333