文档章节

dubbo:webservice基于servlet容器的实现demo

稻帅
 稻帅
发布于 2016/07/14 16:55
字数 524
阅读 35
收藏 0

原文地址:http://dtbuluo.com/blog/archives/124

前面介绍了dubboframework基于dubbo协议的demo,这比给大家介绍另一种协议——webservice,其实它是基于http协议的实现,暴露wenservice的标准化接口,使用到apache-cxf的实现。其实dubbo还有其他很多种协议的实现方式,如rmi,hessian,redis,普通http等等。

下面将介绍demo步骤:

1、新建dynamic web project ,名称:dubbo-webservice,如图:

2、新建接口DubboService

 

package com.enson.webservice.service;

public interface DubboService {
	
	public String printWord(String word);

}

3、新建接口实现类DubboServiceImpl

 

 

package com.enson.webservice.service.impl;

import java.text.SimpleDateFormat;
import java.util.Date;

import com.enson.webservice.service.DubboService;

public class DubboServiceImpl implements DubboService {

	@Override
	public String printWord(String word) {
		String outWord = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS")
				.format(new Date()) + word;

		System.out.println(outWord);

		return outWord;
	}

}

4、新建配置文件spring\dubbo.xml

 

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://code.alibabatech.com/schema/dubbo
        http://code.alibabatech.com/schema/dubbo/dubbo.xsd
        ">

    <!-- 提供方应用信息,用于计算依赖关系 -->
    <dubbo:application name="dubbo-webservice-app" />

    <!-- 使用zookeeper注册中心暴露服务地址 -->
    <dubbo:registry address="zookeeper://127.0.0.1:2181" />

    <!-- 用webservice协议在8080端口暴露服务 -->
    <dubbo:protocol name="webservice" port="8080" server="servlet" />

    <!-- 声明需要暴露的服务接口 -->
    <dubbo:service interface="com.enson.webservice.service.DubboService"
        ref="dubboService" />

    <!-- 和本地bean一样实现服务 -->
    <bean id="dubboService" class="com.enson.webservice.service.impl.DubboServiceImpl" />

</beans>


4、配置web.xml

 

 

<?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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	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>dubbo-webservice</display-name>

        <welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	
        <!-- 定义资源访问路径 -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:spring/*.xml</param-value>
	</context-param>
	
        <!--spring的配置-->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

        <!--dubbo 服务根路径-->
	<servlet>
		<servlet-name>dubbo</servlet-name>
		<servlet-class>com.alibaba.dubbo.remoting.http.servlet.DispatcherServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>dubbo</servlet-name>
		<url-pattern>/services/*</url-pattern>
	</servlet-mapping>
</web-app>


5、将项目部署到tomcat上

 

注意:dubbo必须使用的servlet-api为2.5版本,tomcat默认优先加载2.3版本,找到tomcat安装路径中的lib文件夹,将servlet-api替换成servlet-api-2.5.jar

6、先启动zookeeper,再启动tomcat

访问http://localhost:8080/dubbo-webservice/services/com.enson.webservice.service.DubboService?wsdl

注意:地址缺少“?wsdl”将报cxf的错误。

© 著作权归作者所有

稻帅
粉丝 0
博文 7
码字总数 3148
作品 0
深圳
后端工程师
私信 提问
servelet,webservice,RMI的区别

最近项目中有提供或者调用别的接口,在纠结中到底是用servlet还是用webservice,所以上网查看了下他们以及RMI之间的区别,方便加深了解。 首先比较下servlet和webservice下 请求: servlet:...

疯狂的兔子
2014/08/05
131
0
若Android程序与服务端通信,那么服务端开发技术有哪几种?具体技术细节?

最近在学jsp技术,也了解tomcat,jboss,glassfish等等作为service容器,我很清楚关于jsp网页处理的技术需要WebService,初学jsp,servlet一般用tomcat当做WebService容器。 我的问题是假如我开...

keepthinker
2013/10/04
12.4K
13
开发基于xfire的webservice的两种方式

一. 通过MyEclipse工具,导入webservice库到web project或新建webservice工程。自动将普通的javabean(必须要以接口和实现类的方式出现)发布为webservice。在WebRoot下生成一个WebServices目...

soothwolf
2013/09/29
100
0
手写实现一个迷你版的Tomcat

  点击上方“java进阶架构师”,选择右上角“置顶公众号”   20大进阶架构专题每日送达   Tomcat,这只3脚猫,大学的时候就认识了,直到现在工作中,也常会和它打交道。这是一只神奇的...

java进阶架构师
2018/09/18
0
0
Servlet3.0引入的新特性续

@WebInitParam 可以使用@WebInitParam注解来制定Servlet或filter的初始参数。当然我们也可以使用@WebServlet或@WebFileter的initParam属性来指定初始参数。下面是使用@WebInitParam的例子: ...

长平狐
2012/09/03
133
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql-connector-java升级到8.0后保存时间到数据库出现了时差

在一个新项目中用到了新版的mysql jdbc 驱动 <dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>     <version>8.0.18</version> ......

ValSong
今天
5
0
Spring Boot 如何部署到 Linux 中的服务

打包完成后的 Spring Boot 程序如何部署到 Linux 上的服务? 你可以参考官方的有关部署 Spring Boot 为 Linux 服务的文档。 文档链接如下: https://docs.ossez.com/spring-boot-docs/docs/r...

honeymoose
今天
6
0
Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用

1. 前言 生产上对 Web 应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以...

码农小胖哥
今天
6
0
ZetCode 教程翻译计划正式启动 | ApacheCN

原文:ZetCode 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 学习资源 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 ...

ApacheCN_飞龙
今天
4
0
CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部