Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,
是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。
官方网站:
http://dubbo.io/
本项目代码,根据官方提供的dubbo-ws-demo-master例子,改造而来。
官网例子源码:
https://github.com/dubbo/dubbo-ws-demo
官方的例子,都放在1个项目中,接口、实现类、Java应用测试例子。
自己给改造了下,方便在项目中直接使用。
虽说是HelloWorld,也还是要向实际情况靠拢。
3个项目
1.web-service接口项目, 定义接口和供调用放引入的dubbo配置。
接口HelloService
package com.dubbo.demo;
public interface HelloService {
String hello(String name);
}
接口定义的dubbo配置
spring-dubbo.xml
maven配置
pom.xml
4.0.0
com.shop
1.0.0-SNAPSHOT
web-service
http://maven.apache.org ;
com.alibaba
dubbo
2.4.10
org.apache.cxf
cxf-rt-frontend-simple
2.6.1
org.apache.cxf
cxf-rt-transports-http
2.6.1
web-service
maven-compiler-plugin
1.6
UTF-8
web-service
2.web-service-impl接口实现项目
接口实现类
HelloServiceImpl
package com.dubbo.demo.impl;
import com.dubbo.demo.HelloService;
public class HelloServiceImpl implements HelloService {
@Override
public String hello(String name) {
return "Hello, " + name + "!";
}
}
接口实现dubbo配置
spring-provider.xml
Maven配置
4.0.0
com.shop
web-service-impl
war
1.0.0-SNAPSHOT
dubbo-ws Maven Webapp
http://maven.apache.org ;
com.shop
web-service
1.0.0-SNAPSHOT
web-service-impl
maven-compiler-plugin
1.6
UTF-8
web.xml配置
web-service
org.springframework.web.context.ContextLoaderListener
contextConfigLocation
classpath*:spring-context.xml
dubbo
com.alibaba.dubbo.remoting.http.servlet.DispatcherServlet
1
dubbo
/*
3.接口测试(调用方)项目
接口调用代码
import com.dubbo.demo.HelloService;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class ConsumerMain {
public static void main(String[] args) {
ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("spring-dubbo.xml");
classPathXmlApplicationContext.start();
HelloService helloService = (HelloService) classPathXmlApplicationContext.getBean("helloService");
String world = helloService.hello("World");
System.out.println("=====================================");
System.out.println(world);
System.out.println("=====================================");
}
}
maven配置
类似上面的
Web程序访问
ConsumerMain是通过应用程序的方式,访问Dubbo包装的服务。
而
@Controller
@RequestMapping("")
public class HelloWorldController {
@Autowired
private HelloService helloService;
@ResponseBody
@RequestMapping("hello")
public String hello(){
return helloService.hello("hi dubbo");
}
}
web.xml
web-service-test
org.springframework.web.context.ContextLoaderListener
contextConfigLocation
classpath*:spring-context.xml
springMvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring-mvc-servlet.xml
1
springMvc
/
4.项目测试
a.启动服务项目
web-service-imp
b.启动Java应用程序 ConsumerMain,打印结果。
c.启动Web应用程序web-service-test,访问http://localhost:9080/hello
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net