使用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 ...
随机推荐
- c++的class声明及相比java的更合理之处
或许是基于一直以来c/c++头文件声明和cXX实现物理上置于独立文件的考虑,c++中的OO在现实中基本上也是按照声明和实现分离的方式进行管理和编译,如下所示: Base.h #pragma once ...
- C++面向对象高级开发课程(第三周)
一,类与类之间的关系:继承(Inheritance).复合(Composition).委托(Delegation). 二,复合:表示 is-a ,该设计思想可以参照C语言的 struct . 1. 例 ...
- Linux查看网卡带宽的两个命令
1.ethtool ethtool 网络接口名 #ethtool em4 Settings for em4: Supported ports: [ TP ] Supported link modes: ...
- JS(JavaScript)脚本库的积累
在现在互联网盛行的时代,使得B/S架构飞速发展.曾经在大学的时候我一直都梦想着毕业后要找一个像腾讯这样大企业做C/S方面的开发工作(其实现在腾讯也有很多B/S软件),因为C/S体验度非常高,感觉非常好 ...
- Python3基础 file open+write 对不存在的txt进行创建与写入
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- BZOJ 4552: [Tjoi2016&Heoi2016]排序 线段树 二分
目录 此代码是个假代码,只能糊弄luogu,以后再改,路过大佬也可以帮一下辣 update 10.6 此代码是个假代码,只能糊弄luogu,以后再改,路过大佬也可以帮一下辣 /* //fang zhi ...
- 解决Eclipse 项目报错:Unbound classpath container: ‘JRE System Library [JavaSE-1.7]
MyEclipse出现下面两条报错: The project cannot be built until build path errors are resolved HelloWord Unknow ...
- Luogu P1314 聪明的质监员 二分答案
题目链接 Solution 这个范围不是二分就是结论题就是数学题... 然后再看一会差不多就可以看出来有单调性所以就可以确定二分的解法了 二分那个$W$,用前缀和$O(n+m)$的时间来求出对答案的贡 ...
- 【译】Asp.net core应用在 Kubernetes上内存使用率过高问题分析
原文:https://blog.markvincze.com/troubleshooting-high-memory-usage-with-asp-net-core-on-kubernetes/ ps ...
- python 线性查找
import random val= data=[,,,,] : find= val=int(input('请输入查找键值(1-9),输入-1离开:')) for i in data: if i==v ...