dubbo之webservice协议使用

普通接口及实现类

public interface WsService {	String sayHello(String msg);}
public class WsServiceImpl implements WsService {	@Override	public String sayHello(String msg) 	{		 return "hello " + msg;	}}

dubbo服务提供者配置

<?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-provider"  /><!--     <dubbo:registry protocol="multicast" address="224.5.6.7:1234"/> -->

    <!-- 如果server:servlet,则端口必须与servlet容器端口一致,同时contextpath与servlet应用的上下文相同 -->    <dubbo:protocol name="webservice" port="8080" server="servlet"/>        <dubbo:service interface="com.dubbo.webservice.WsService" ref="wsService" registry="N/A" path="service" />    <bean id="wsService" class="com.dubbo.webservice.WsServiceImpl" /> </beans>

dubbo服务消费者配置

<?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-consumer"/>

    <!-- 使用multicast广播注册中心暴露服务地址 -->    <!-- <dubbo:registry address="multicast://224.5.6.7:1234"/> -->

    <!-- 声明需要暴露的服务接口 -->    <dubbo:reference interface="com.dubbo.webservice.WsService" id="wsService" url="webservice://localhost:8080/ProjectBuild/service" registry="N/A"/>

</beans>

web.xml配置

		<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>/*</url-pattern>		</servlet-mapping>

依赖配置文件

    <dependency>    <groupId>org.apache.cxf</groupId>      <artifactId>cxf-rt-frontend-simple</artifactId>      <version>2.6.1</version>    </dependency>    <dependency>	    <groupId>org.apache.cxf</groupId>	    <artifactId>cxf-rt-transports-http</artifactId>	    <version>2.6.1</version>     </dependency>

注意事项

  1. 需要指定<dubbo:protocol server="servlet">.
  2. jar需要使用2.6.1版本,使用高版本好像有问题,消费者无法访问.
  3. 消费者引用时,url需要带上应用上下文,否则也无法访问.
  4. 针对servlet的服务,端口和上下文必须与应用服务器的端口及上下文保持一致.

遗留问题

1.dubbo-webservice与标准webservice的相互使用

时间: 2024-09-30 16:50:57

dubbo之webservice协议使用的相关文章

dubbo 各通讯协议比较

1.各协议的比较 协议名称 实现描述 连接 使用场景 dubbo 传输:mina.netty.grizzy 序列化:dubbo.hessian2.java.json     dubbo缺省采用单一长连接和NIO异步通讯    1.传入传出参数数据包较小 2.消费者 比提供者多 3.常规远程服务方法调用 4.不适合传送大数据量的服务,比如文件.传视频 rmi 传输:java  rmi 序列化:java 标准序列化 连接个数:多连接 连接方式:短连接 传输协议:TCP/IP 传输方式:BIO 1.常

Dubbo支持的协议

协议介绍 协议是两个网络实体进行通信的基础,数据在网络上从一个实体传输到另一个实体,以字节流的形式传递到对端.在这个字节流的世界里,如果没有协议,就无法将这个一维的字节流重塑成为二维或者多维的数据结构以及领域对象. 在通信过程中,不同的服务等级一般对应着不同的服务质量,那么选择合适的协议便是一件非常重要的事情.你可以根据你应用的创建来选择.例如,使用RMI协议,一般会受到防火墙的限制,所以对于外部与内部进行通信的场景,就不要使用RMI协议,而是基于HTTP协议或者Hessian协议. 常见的协议

[转载] 基于Dubbo的Hessian协议实现远程调用

转载自http://shiyanjun.cn/archives/349.html Dubbo基于Hessian实现了自己Hessian协议,可以直接通过配置的Dubbo内置的其他协议,在服务消费方进行远程调用,也就是说,服务调用方需要使用Java语言来基于Dubbo调用提供方服务,限制了服务调用方.同时,使用Dubbo的Hessian协议实现提供方服务,而调用方可以使用标准的Hessian接口来调用,原生的Hessian协议已经支持多语言客户端调用,支持语言如下所示: Java:http://h

基于Dubbo的Hessian协议实现远程调用

Dubbo基于Hessian实现了自己Hessian协议,可以直接通过配置的Dubbo内置的其他协议,在服务消费方进行远程调用,也就是说,服务调用方需要使用Java语言来基于Dubbo调用提供方服务,限制了服务调用方.同时,使用Dubbo的Hessian协议实现提供方服务,而调用方可以使用标准的Hessian接口来调用,原生的Hessian协议已经支持多语言客户端调用,支持语言如下所示: Java:http://hessian.caucho.com/#Java Flash/Flex:http:/

Loadrunner测试webservice协议总结

Loadrunner测试webservice协议总结 一.协议选择 1.打开Virtual user generator,新建脚本,选择webservice协议 2.当选择的协议不明确或者被测系统协议不明确时,使用loadrunner11自带的协议分析软件,文件->分析软件->分析应用程序,选择应用程序类型和路径确定即可,等待分析结果. 3.  协议选择完毕后,进入脚本创建界面 二.脚本创建 1.导入服务 管理服务->导入,输入被测服务的路径导入,确定 2.添加调用程序 1.添加服务调用

Dubbo 使用rest协议发布http服务

演示用GitHub地址:https://github.com/suyin58/dubbo-rest-example 1       Dubbo_rest介绍 Dubbo自2.6.0版本后,合并了dubbox的restful风格的接口暴露方式,其restful的处理采用的是jboss.resteasy框架.使用该功能可以简便的将dubbo服务直接通过http的方式发布,不需要再使用中转的http应用暴露服务. 如上图,原有结构中,HTTP访问需要通过API应用中转服务,RPC访问调用dubbo应用

dubbo之rmi协议使用

普通接口与实现类 public interface DemoService {    String sayHello(String msg);} public class DemoServiceImpl implements DemoService { @Override public String sayHello(String msg) { return "hello " + msg; }} dubbo服务提供者配置 <?xml version="1.0"

webservice 协议

Web   Service使用的是   SOAP   (Simple   Object   Access   Protocol)协议soap协议只是用来封装消息用的.封装后的消息你可以通过各种已有的协议来传输,比如http,tcp/ip,smtp,等等,你甚至还一次用自定义的协议,当然也可以用https协议.Soap建立在http上,说白了是用http传送xml而已. 除了WebService外,常见的远程调用技术还有RMI(Remote method invoke)和CORBA,由于WebSe

dubbo扩展http协议后FullGC

问题 dubbo内部定制的版本中,在处理大于10K的包的时候,会出现内存溢出的现象 原因是我们在定制dubbo http协议的时候,使用了jboss包里面的HttpRequestDecoder的http decoder方法来解析http协议内容 该方法在解析非http协议的大内容时,会出现内存溢出的情况 某个服务因为这个问题,出现了full gc 的情况 复现问题 根据描述复现该问题 指定dubbo版本 dubbo请求,非http请求 消息体大于10K jvm堆配置,jmap -heap pid