zoukankan      html  css  js  c++  java
  • 使用tomcat启动dubbo项目

    首先,黑体标出

    官方不推荐使用web容器进行dubbo的启动

    但是,有些时候,我们不采用他们的建议。

    背景:

      之前用的dubbo项目,是由main函数启动的,每次发布项目,需要启动两项: 1、 tomcat启动web项目;2、 jar 启动 dubbo 项目。

      调整目标:使用 tomcat 启动 web + dubbo 项目,一次启动。

      代码在上一篇文章的示例代码上进行改造。

      http://www.cnblogs.com/fri-yu/p/5981436.html

      那么,根据官方的提示,我们使用 spring 启动dubbo。

      首先,添加一个空的 WEB 项目然后在 web.xml 里面配置 spring 的启动。

    <?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>Archetype Created Web Application</display-name>
    
    	<context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>classpath*:spring/root.xml</param-value>
    	</context-param>
    	<listener>
    		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    	</listener>
    </web-app>

    将项目进行简单分层,分为 WEB 、 RPC 、RPC-IMPL , 使用tomcat 启动 WEB 层,将 RPC 层的 jar 包发布出去给别的项目用于 dubbo  调用的依赖。

    在 RPC 层实现 RPC 接口及 consumer 文件的提供

    在 IMPL 层,依赖 RPC 层,并实现 RPC 层中的接口,然后配置相应的 provider 文件

    在 WEB 层,依赖 IMPL 层,引入 provider 文件,用于启动 dubbo 服务。

    启动项目后访问项目:

    (普通的web项目,简陋了点)

    在dubbo-admin中查看服务

    再建一个springMVC 的 WEB 项目对刚才发布并启动的 dubbo 项目进行测试

    首先,依赖 RPC 的 jar 包。(把 RPC 层的 jar 包发布到本地仓库或者私服中即可)

     然后,引入 consumer 文件,以调用 RPC 层提供出来的接口。

    写一个 controller , 注入 RPC 层提供的接口。

    启动该web项目,进行访问:

    启动 dubbo 的 web  项目后台打印:

     示例代码位置:

    povider

    https://github.com/fri-yu/JavaLearn/tree/master/dubbo/20171027/provider

    https://files.cnblogs.com/files/fri-yu/provider.zip

    consumer

    https://github.com/fri-yu/JavaLearn/tree/master/dubbo/20171027/comsumer/web

    https://files.cnblogs.com/files/fri-yu/consumer.zip

  • 相关阅读:
    JDk和Mevan安装和配置
    如何修改windows系统的host文件
    字符串格式化
    可变和不可变的数据类型
    拦截
    eclipse格式化代码模板
    oracle语法练习汇总
    PLSQL语法
    oracle创建完实例删除的时候报ORA-01031:insufficient privileges错误,解决办法
    socket多线程方式案例
  • 原文地址:https://www.cnblogs.com/fri-yu/p/7765767.html
Copyright © 2011-2022 走看看