使用tomcat启动dubbo项目

首先,黑体标出

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

使用tomcat启动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  调用的依赖。

使用tomcat启动dubbo项目

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

使用tomcat启动dubbo项目

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

使用tomcat启动dubbo项目

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

使用tomcat启动dubbo项目

启动项目后访问项目:

使用tomcat启动dubbo项目

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

在dubbo-admin中查看服务

使用tomcat启动dubbo项目

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

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

使用tomcat启动dubbo项目

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

使用tomcat启动dubbo项目

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

使用tomcat启动dubbo项目

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

使用tomcat启动dubbo项目

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

使用tomcat启动dubbo项目

示例代码位置:

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

上一篇:Python验证码识别处理实例(转)


下一篇:tomcat启动后,页面浏览时报错 Unable to compile class for JSP的解决方案