Dubbo的helloworld maven版

原创 2016年05月31日 19:17:09

在写dubbo的helloworld前,先安装zookeeper注册中心,阿里文档推荐用这个软件。我用的操作系统是ubuntu14.0.4 ,zookeeper版本zookeeper-3.4.8,安装过程按照阿里提供的文档一步步来的:
http://dubbo.io/Administrator+Guide.htm#AdministratorGuide-ZookeeperRegistryInstallation
总结安装zookeeper的过程就是:
1/下载zookeeper,解压任意目录
2/将 conf/zoo_sample.cfg文件复制重命名 conf/zoo.cfg(内容不用改,因为默认的属性值都有)
3/启动zookeeper 命令: ./bin/zkServer.sh start
4/验证是否安装成功
telnet 127.0.0.1 2181
dump


以上是zookeeper的安装过程
如果你不想看dubbo的helloworld详细步骤,你也可以直接把我写的两个demo下载下来直接运行,项目源码下载地址:https://pan.baidu.com/s/1bVkJ86 密码 appw

以下是项目目录截图和详细代码
这里写图片描述
先写服务端,新建maven项目,
HelloWorldService接口

public interface HelloWorldService {

    String sayHi(String content);
}

实现类:

public class HelloWorldServiceImpl implements HelloWorldService {

    public String sayHi(String content) {
        return "hi "+content;
    }

}

pom.xml配置


    <dependency>
        <groupId>org.apache.zookeeper</groupId>
        <artifactId>zookeeper</artifactId>
        <version>3.4.5</version>
        <!--排除log4j必须加上-->
        <exclusions>
               <exclusion>
                   <groupId>log4j</groupId>
                   <artifactId>log4j</artifactId>
               </exclusion>
           </exclusions>
    </dependency>

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>dubbo</artifactId>
        <version>2.4.9</version>
    </dependency>

    <dependency>
        <groupId>com.github.sgroschupf</groupId>
        <artifactId>zkclient</artifactId>
        <version>0.1</version>
    </dependency>

spring.xml配置:

        <!-- 当前应用信息配置 ip也可以是127.0.0.1-->
    <dubbo:application name="providerDemo" />
    <dubbo:registry address="zookeeper://10.57.194.128:2181" />

        <!-- 声明需要暴露的服务接口 -->
    <dubbo:service interface="com.evan.customer.HelloWorldService" ref="dubboApi"/>
    <!-- 本地对象实例 -->
    <bean id="dubboApi" class="com.evan.dubbo.impl.HelloWorldServiceImpl" />

PrivoderTest启动测试类:

public static void main(String[] args) throws IOException {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] { "spring.xml" });
        System.in.read(); // 防止系统退出
    }

客户端调用项目,新建customer的maven项目
1/新建HelloWorldService接口

public interface HelloWorldService {

    String sayHi(String content);
}

2/pom.xml配置


    <dependency>
        <groupId>org.apache.zookeeper</groupId>
        <artifactId>zookeeper</artifactId>
        <version>3.4.5</version>
        <exclusions>
               <exclusion>
                   <groupId>log4j</groupId>
                   <artifactId>log4j</artifactId>
               </exclusion>
           </exclusions>
    </dependency>

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>dubbo</artifactId>
        <version>2.4.9</version>
    </dependency>

            <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>

spring.xml配置:

    <!-- 当前应用信息配置 -->
    <dubbo:application name="providerDemo" />
    <dubbo:registry address="zookeeper://10.57.194.128:2181" />

    <!-- 像本地使用一样注册对象-->
    <dubbo:reference id="hello" interface="com.evan.customer.HelloWorldService"/>

客户端测试代码

public static void main(String[] args) {

        ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("spring.xml");
        HelloWorldService hw = (HelloWorldService) ac.getBean("hello");

        String result = hw.sayHi("dubbo");
        System.out.println(result);
    }

调用成功输出截图:
这里写图片描述
需要注意:
1,zookeeper一定要正确安装,启动
2,先运行provider,再运行customer
3,helloworldservice包名要相同 (按理说应该将接口声明单独提出来,然后让客户端和服务端都依赖同一个jar包)

可能遇到的问题
1,如果provider的main方法运行两次,会报端口占用异常。
解决办法:查找占用端口进程对应的pid,然后kill
这里写图片描述
2,spring.xml关于dubbo的配置会出现:
cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element ‘dubbo:application’.
可以忽略它,不影响运行。网上有人说可以找dubbo.xsd,我自己没试过,而且看了评论好像也不管用。

Dubbo新手入门实例HelloWorld(zookeeper)源码

  • 2016年05月26日 16:37
  • 16KB
  • 下载

Dubbo新手入门实例HelloWorld(zookeeper)

最近刚接触dubbo,新手入门遇到好多麻烦,网上搜来的入门demo也是各种问题,百般周折自己终于倒腾出来了,与大家共享~ 1.创建服务方项目dubbo-server,在pom.xml中构建项目依赖...
  • xingbaozhen1210
  • xingbaozhen1210
  • 2016年05月26日 15:47
  • 5421

Dubbo之入门例子HelloWorld

1、项目的目录结构  2、关于Zookeeper的安装       关于Zookeeper的安装,详情见前面的博客  http://blog.csdn.net/zbw18297786698/arti...
  • zbw18297786698
  • zbw18297786698
  • 2017年01月16日 14:09
  • 1149

初始Dubbo框架(HelloWorld)

关于Dubbo的介绍,官方上已经介绍的很详细了,此入门的HelloWorld也是参考官方搭建而来了,算是一个入门的程序的吧!在这里给大家分享一下。  首先也大致的介绍一下关于Dubbo的大致内容,看一...
  • ZHOUCHAOQIANG
  • ZHOUCHAOQIANG
  • 2015年11月10日 11:39
  • 1297

Dubbo--HelloWorld

上篇博客对Dubbo进行了大概的介绍,这篇博客介绍如何使用Dubbo,经典的HelloWorld。       通过上篇博客我们知道,在dubbo中有一个很重要的角色是注册中心,Dubbo现在支持的有...
  • kanglix1an
  • kanglix1an
  • 2015年07月25日 15:24
  • 3419

Dubbo入门之HelloWorld篇

一、前言 Dubbo是阿里巴巴推出的分布式服务器,通过Dubbo可以为Web应用提供WebService的功能。把单服务器应用实现分布式,万事开头难,在Dubbo的使用前,必须要部署Dubb...
  • WJW15363193644wjw
  • WJW15363193644wjw
  • 2017年05月29日 15:26
  • 847

dubbo调用和maven依赖的区别

dubbo:跨系统通信。比如:两个系统,一个系统A作客户端,一个系统B作服务器, 服务器B把自己的接口定义提供给客户端A,客户端A将接口定义在spring中的bean。客户端A可直接使用这个bean,...
  • syf1970
  • syf1970
  • 2017年04月19日 10:52
  • 1230

Maven+SpringMVC+Dubbo 简单的入门demo配置

之前一直听说dubbo,是一个很厉害的分布式服务框架,而且巴巴将其开源,这对于咱们广大程序猿来说,真是一个好消息。最近有时间了,打算做一个demo把dubbo在本地跑起来先。先copy一段dubbo的...
  • aixiaoyang168
  • aixiaoyang168
  • 2016年05月10日 16:21
  • 19700

dubbo 入门案例 helloworld

  • 2017年12月26日 09:07
  • 33.35MB
  • 下载

Dubbo的helloworld maven版

在写dubbo的helloworld前,先安装zookeeper注册中心,阿里文档推荐用这个软件。我用的操作系统是ubuntu14.0.4 ,zookeeper版本zookeeper-3.4.8,安装...
  • zl544434558
  • zl544434558
  • 2016年05月31日 19:17
  • 2511
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Dubbo的helloworld maven版
举报原因:
原因补充:

(最多只允许输入30个字)