使用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
使用tomcat启动dubbo项目的更多相关文章
- IntelliJ IDEA 2017.2.6 x64 配置 tomcat 启动 maven 项目
IntelliJ IDEA 2017.2.6 x64 配置 tomcat 启动 maven 项目 1.确认 IDEA 是否启用了 tomcat 插件 2.添加 tomcat 选择 tomcat 存放路 ...
- Tomcat启动时项目重复加载的问题
最近在项目开发测试的时候,发现Tomcat启动时项目重复加载,导致资源初始化两次的问题 导致该问题的原因: 如下图:在Eclipse中将Server Locations设置为“Use Tomcat ...
- tomcat启动dubbo报IO异常
严重: Servlet [springDispatcher] in web application [/dubbo-service] threw load() exception java.io.IO ...
- Tomcat启动时项目反复载入,导致资源初始化两次的问题
近期在项目开发測试的时候,发现Tomcat启动时项目反复载入,导致资源初始化两次的问题 导致该问题的解决办法: 例如以下图:在Eclipse中将Server Locations设置为"Us ...
- 启动Dubbo项目注册Zookeeper时提示zookeeper not connected异常原理解析
文/朱季谦 遇到一个很诡异的问题,我在启动多个配置相同zookeeper的Dubbo项目时,其他项目都是正常启动,唯独有一个项目在启动过程中,Dubbo注册zookeeper协议时,竟然出现了这样的异 ...
- tomcat启动指定项目
看一下server.xml,conf/localhost/,web.xml是否配置了其他的WEBAPP应用,但实际地址已经被移除,清空WORK目录试试 http://blog.163.com/mous ...
- 【项目启动】 tomcat启动,项目无法启动,无法正常访问/项目可以启动,报错:java.lang.ClassNotFoundException: ContextLoaderListener
使用maven搭建项目(这个错误和是不是使用maven搭建项目没有关系),然后部署到tomcat中运行. 出现问题1: tomcat跑起来了,但是启动时间很短,没有报错,项目不能正常访问 项目启动时间 ...
- eclipse下使用tomcat启动maven项目
最近学习使用maven,建立了一个maven项目使用eclipse下tomcat启动时报错: 严重: ContainerBase.addChild: start: org.apache.catalin ...
- tomcat启动前端项目
前后端分离项目,前端使用vue,部署启动前端项目可以使用NodeJS,Nginx,Tomcat. *)使用Tomcat部署启动: 1.把vue项目build生成的dist包,放到Tomcat的weba ...
随机推荐
- xml声明中的standalone属性
晚上,在测试tinyxml的时候,发现其中声明了<?xml version="1.0" standalone="no" ?>,经查,其含义为stan ...
- c++中类似于java jprofiler/eclispe memoryanalysis的性能以及内存分析工具
visual studio有自带的,可以看MSDN,不过一般来说,我们比较关注linux下的,搜了下,比较好用的应该有gprof和valgrind,先记录,可参考如下: http://blog.csd ...
- 20145118《Java程序设计》 第7周学习总结
20145118<Java程序设计> 第7周学习总结 教材学习内容总结 本周学习内容为第十三章,以下为教材内容重点总结: 1.格林威治标准时间简称GMT时间. 2.java.util.Da ...
- 20145206邹京儒 EXP7网络欺诈技术防范
20145206邹京儒 EXP7网络欺诈技术防范 一.实践过程记录 URL攻击实验前准备 1.在终端中输入命令:netstat -tupln |grep 80,查看80端口是否被占用,如下图所示 2. ...
- 20145301 赵嘉鑫 《网络对抗》Exp6 信息搜集与漏洞扫描
20145301赵嘉鑫<网络对抗>Exp6 信息搜集与漏洞扫描 基础问题回答 哪些组织负责DNS,IP的管理? 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器.D ...
- 如何安装多个jdk
1.首先去官网下载不同版本的jdk 下载地址:http://www.oracle.com/technetwork/java/javase/archive-139210.html 2.下载后我的安装路径 ...
- LTE-A 载波聚合(Carrier Aggregation)介绍【转】
本文转自:https://blog.csdn.net/txgc1009/article/details/46467255 载波聚合(Carrier Aggregation) 首先介绍几个基本概念 Pr ...
- P3386 【模板】二分图匹配 -网络流版
二分图匹配 题目背景 二分图 感谢@一扶苏一 提供的hack数据 题目描述 给定一个二分图,结点个数分别为n,m,边数为e,求二分图最大匹配数 输入输出格式 输入格式: 第一行,n,m,e 第二至e+ ...
- Centos7.2 修改网卡名称
查看ip [root@localhost network-scripts]# ip addr : lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue ...
- 【自定义IK词典】Elasticsearch之中文分词器插件es-ik的自定义词库
Elasticsearch之中文分词器插件es-ik 针对一些特殊的词语在分词的时候也需要能够识别 有人会问,那么,例如: 如果我想根据自己的本家姓氏来查询,如zhouls,姓氏“周”. 如 ...