首先,黑体标出

官方不推荐使用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 的启动。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  5. id="WebApp_ID" version="2.5">
  6. <display-name>Archetype Created Web Application</display-name>
  7.  
  8. <context-param>
  9. <param-name>contextConfigLocation</param-name>
  10. <param-value>classpath*:spring/root.xml</param-value>
  11. </context-param>
  12. <listener>
  13. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  14. </listener>
  15. </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

使用tomcat启动dubbo项目的更多相关文章

  1. IntelliJ IDEA 2017.2.6 x64 配置 tomcat 启动 maven 项目

    IntelliJ IDEA 2017.2.6 x64 配置 tomcat 启动 maven 项目 1.确认 IDEA 是否启用了 tomcat 插件 2.添加 tomcat 选择 tomcat 存放路 ...

  2. Tomcat启动时项目重复加载的问题

    最近在项目开发测试的时候,发现Tomcat启动时项目重复加载,导致资源初始化两次的问题  导致该问题的原因: 如下图:在Eclipse中将Server Locations设置为“Use Tomcat ...

  3. tomcat启动dubbo报IO异常

    严重: Servlet [springDispatcher] in web application [/dubbo-service] threw load() exception java.io.IO ...

  4. Tomcat启动时项目反复载入,导致资源初始化两次的问题

    近期在项目开发測试的时候,发现Tomcat启动时项目反复载入,导致资源初始化两次的问题  导致该问题的解决办法: 例如以下图:在Eclipse中将Server Locations设置为"Us ...

  5. 启动Dubbo项目注册Zookeeper时提示zookeeper not connected异常原理解析

    文/朱季谦 遇到一个很诡异的问题,我在启动多个配置相同zookeeper的Dubbo项目时,其他项目都是正常启动,唯独有一个项目在启动过程中,Dubbo注册zookeeper协议时,竟然出现了这样的异 ...

  6. tomcat启动指定项目

    看一下server.xml,conf/localhost/,web.xml是否配置了其他的WEBAPP应用,但实际地址已经被移除,清空WORK目录试试 http://blog.163.com/mous ...

  7. 【项目启动】 tomcat启动,项目无法启动,无法正常访问/项目可以启动,报错:java.lang.ClassNotFoundException: ContextLoaderListener

    使用maven搭建项目(这个错误和是不是使用maven搭建项目没有关系),然后部署到tomcat中运行. 出现问题1: tomcat跑起来了,但是启动时间很短,没有报错,项目不能正常访问 项目启动时间 ...

  8. eclipse下使用tomcat启动maven项目

    最近学习使用maven,建立了一个maven项目使用eclipse下tomcat启动时报错: 严重: ContainerBase.addChild: start: org.apache.catalin ...

  9. tomcat启动前端项目

    前后端分离项目,前端使用vue,部署启动前端项目可以使用NodeJS,Nginx,Tomcat. *)使用Tomcat部署启动: 1.把vue项目build生成的dist包,放到Tomcat的weba ...

随机推荐

  1. 业余时间正在开发一个REACT小视频站点

    业余时间正在开发一个REACT小视频站点,数据接口来源于吐槽弹幕网(C站),供C站用户移动端的观看.因现存在移动网络屏蔽C站的关系,最好使用非移动网络进行观看.否则会比较卡,影响用户体验. 站点测试入 ...

  2. java项目报错: org.springframework.beans.factory.BeanCreationException找不到mapper.xml文件

    错误代码 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userSer ...

  3. 20145122《Android开发基础》实验四实验报告

    实验名称 Android开发基础 实验内容 1.Windows环境下Android Studio 2.能够运行安卓AVD模拟器 3.使用安卓虚拟手机显示HelloWorld以及自己的学号 统计的PSP ...

  4. 三种常用的js数组去重方法

    第一种是比较常规的方法 思路: 1.构建一个新的数组存放结果 2.for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比 3.若结果数组中没有该元素,则存到结果数组中 Array.pro ...

  5. arm linux下启动ftp服务

    1.环境: /home/jello # uname -aLinux  3.10.0 #2 SMP Mon Mar 6 17:52:09 CST 2017 armv7l GNU/Linux 2.使用tc ...

  6. linux下通过命令行上传文件到百度网盘

    一.环境: centos release 6.9 python 2.7.13 二.安装工具bypy sudo pip install bypy 三.使用bypy 3.1 授权 [root@ineedl ...

  7. ISSCC 2017论文导读 Session 14:ENVISION: A 0.26-to-10 TOPS/W Subword-Parallel DVAFS CNN Processor in 28nm

    ENVISION: A 0.26-to-10 TOPS/W Subword-Parallel Dynamic-Voltage-Accuracy-Frequency-Scalable CNN Proce ...

  8. 卸载vs2017

    卸载enterprise版本 Microsoft.FSharp.SDK.Core卸载失败Package 'Microsoft.FSharp.SDK.Core,version=15.7.20180605 ...

  9. ZedGraph如何动态的加载曲线

    ZedGraph的在线文档 http://zedgraph.sourceforge.net/documentation/default.html 官网的源代码 http://sourceforge.n ...

  10. JavaScript权威指南2.词法结构

    字符集 1.用16位的Unicode字符集编写的,可以表示地球上通用的每一种书面语言.国际化 2.每个字符都是用两个字节表示的 3.大小写敏感:关键字.变量.函数名.标识符:HTML并不区分大小写 H ...