dubbox的使用案例,完成两个项目之间的交互

原创 2018年04月15日 17:17:32

xl_echo编辑整理,欢迎转载,转载请声明文章来源。更多IT、编程案例、资料请联系QQ:1280023003
百战不败,依不自称常胜,百败不颓,依能奋力前行。——这才是真正的堪称强大!!


开发步骤
完成服务提供方的编写,完成服务消费方的编写

  • 第一步:创建服务提供方的工程
    这里写图片描述

  • 第二步:配置pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.echo.dubboxservice</groupId>
  <artifactId>dubbox-service</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <name>dubbox-service</name>

   <properties>     
        <spring.version>4.2.4.RELEASE</spring.version>
   </properties>

    <dependencies>
        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jms</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${spring.version}</version>
        </dependency>   

        <!-- dubbo相关 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.8.4</version>            
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.6</version>
        </dependency>
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>

        <dependency>
            <groupId>javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>3.11.0.GA</version>
        </dependency>

    </dependencies>
   <build>  
      <plugins>
          <plugin>  
              <groupId>org.apache.maven.plugins</groupId>  
              <artifactId>maven-compiler-plugin</artifactId>  
              <version>2.3.2</version>  
              <configuration>  
                  <source>1.8</source>  
                  <target>1.8</target>  
              </configuration>  
          </plugin>

          <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <port>10080</port>
            </configuration>
          </plugin>
      </plugins>  
    </build>
</project>
  • 第三步:配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>springmvc</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>


  <!-- 加载spring容器 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext*.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>


</web-app>
  • 第四步:配置applicationContext-service.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <dubbo:application name="dubbox-service"/>
    <dubbo:registry address="zookeeper://192.168.25.129:2181"/>
    <dubbo:annotation package="com.echo.service.impl" />

</beans>
  • 第五步:编写接口
package com.echo.service;
public interface UserService {
    public String getName();
}
  • 第六步:编写实现
package com.echo.service.impl;

import com.alibaba.dubbo.config.annotation.Service;
import com.echo.service.UserService;
@Service
public class UserServiceImpl implements UserService{

    @Override
    public String getName() {
        return "echo";
    }

}

注意:要在开发工具上配置一个离线约束http://code.alibabatech.com/schema/dubbo/dubbo.xsd

  • 第七步:编写服务消费方,创建工程
    这里写图片描述

  • 第八步:配置web.xml,注意:两个工程的pom文件都一样,只是服务端口不能相同

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    version="2.5">  
   <!-- 解决post乱码 -->
    <filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
        <init-param>  
            <param-name>forceEncoding</param-name>  
            <param-value>true</param-value>  
        </init-param>  
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>   

  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 指定加载的配置文件 ,通过参数contextConfigLocation加载-->
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springmvc.xml</param-value>
    </init-param>
  </servlet>

  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
</web-app>
  • 第九步:编写控制类
package com.echo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.dubbo.config.annotation.Reference;
import com.echo.service.UserService;

@Controller
@RequestMapping("/user")
public class UserController {

    @Reference//代表远程引用
    private UserService userServie;

    @RequestMapping("/showName")
    @ResponseBody
    public String showName(){
        return userServie.getName();
    }
}
  • 第十步:将服务提供方复制到服务消费方
    这里写图片描述

  • 第十一步:保证zookeeper是启动的

  • 第十二步:在maven仓库配置dubbox的支持jar包,注意:要首先保证系统环境变量已经配置了maven
    首先将dubbo-2.8.4放在D盘根目录下,然后执行这条命令:mvn install:install-file -Dfile=d:\dubbo-2.8.4.jar -DgroupId=com.alibaba -DartifactId=dubbo -Dversion=2.8.4 -Dpackaging=jar

  • 第三步:先启动服务提供方,再启动服务消费方,访问服务消费方,看是否是服务提供方返回的信息,如果是demo运行成功(访问路径:http://localhost:10081/user/showName.do

源码地址:链接:https://pan.baidu.com/s/1t0kGDoFLCll5m8C51YSyvQ 密码:s7bn


做一个有底线的博客主

Fragment与Fragment之间交互

Fragment与Fragment之间交互
  • android4all
  • android4all
  • 2017-03-20 11:01:32
  • 331

Dubbo最简单的实例

用最简单的组播方式来编写dubbo小例子 分别新建两个maven webapp项目,一个是服务器端的,一个是客户端的。   服务器端这边项目的结构如下图:...
  • u011439289
  • u011439289
  • 2014-11-19 15:23:41
  • 13722

rails数据交互(2)

补充上一章的内容:当代码改变,要重新进入console模型的数据验证: 对不符合要求的对象无效,不予创建 存在性验证: 在User实体类中添加如下代码,进行存在性验证,关键函数(validates)...
  • jizhename
  • jizhename
  • 2017-02-27 21:01:55
  • 103

使用js跨域交互案例

  • 2017年12月25日 15:34
  • 868B
  • 下载

dubbox在异构系统中的使用

前端包括C#、Android等,后端采用java编写,经考量最终选择dubbox作为服务框架。主要步骤包括:1. git clone dubbox,运行mvn编译发布。如果遇到错误,可以跳过: mvn...
  • kampoo
  • kampoo
  • 2018-02-26 10:13:35
  • 122

dubbox web项目实例

  • 2016年03月10日 00:31
  • 28.13MB
  • 下载

你一定要知道的几种项目间数据交互方式

不同的系统之间进行数据交互是可避免的,总的说来,可以总结为向第三方系统推送数据或从服务器拉回数据两种,下面我列举几种常见的系统间数据交互方式,并给出架构设计时应考虑的因素。 一、    ftp服务器...
  • frinder
  • frinder
  • 2013-10-16 09:58:44
  • 2599

android中不同app间数据交互(1、简单一次性数据交互)

近期开发项目的时候,发现增加功能模块需要的jar包与原工程里的jar冲突,无法解决,故转换思想,为什么不能把新增加的功能的业务代码封装进新的app,业务完成后将结果发回项目工程即可。故研究了一下and...
  • tangyayong
  • tangyayong
  • 2016-08-18 19:10:36
  • 1342

两个项目之间如何通信

不同项目之间的通信方式分为,http、socket、webservice;其中socket通信的效率最高,youtube就采用的是原始的socket通信,他们信奉的原则是简单有效。 一、http...
  • sunshine_silence
  • sunshine_silence
  • 2017-12-11 11:47:22
  • 924

Fragment(3)和其他Fragment之间交互--伟大的接口回调

这个是我一直想要找的,没想到伟大的官网竟然有。感动到流鼻涕了。。 为了重用Fragment UI组件,我们应该创建一个完全独立的自控的,定义自己布局和行为的模型组件。一旦我们定义了这些可重用...
  • yymonkeydo
  • yymonkeydo
  • 2014-12-30 15:01:08
  • 2198
收藏助手
不良信息举报
您举报文章:dubbox的使用案例,完成两个项目之间的交互
举报原因:
原因补充:

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