WebService

简介: 基于 Apache CXF 实现的 Dubbo WebService 协议,支持与标准 WebService 互操作,适用于系统集成和跨语言调用。采用 HTTP 短连接、SOAP 文本序列化,需参数实现 Serializable 接口。

基于 WebService 的远程调用协议,基于 Apache CXF 1frontend-simpletransports-http 实现 2

可以和原生 WebService 服务互操作,即:

  • 提供者用 Dubbo 的 WebService 协议暴露服务,消费者直接用标准 WebService 接口调用,
  • 或者提供方用标准 WebService 暴露服务,消费方用 Dubbo 的 WebService 协议调用。

依赖

<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>

特性

  • 连接个数:多连接
  • 连接方式:短连接
  • 传输协议:HTTP
  • 传输方式:同步传输
  • 序列化:SOAP 文本序列化
  • 适用场景:系统集成,跨语言调用

约束

  • 参数及返回值需实现 Serializable 接口
  • 参数尽量使用基本类型和 POJO

配置

配置协议:

<dubbo:protocol name="webservice" port="8080" server="jetty" />

配置默认协议:

<dubbo:provider protocol="webservice" />

配置服务协议:

<dubbo:service protocol="webservice" />

多端口:

<dubbo:protocol id="webservice1" name="webservice" port="8080" />
<dubbo:protocol id="webservice2" name="webservice" port="8081" />

直连:

<dubbo:reference id="helloService" interface="HelloWorld" url="webservice://10.20.153.10:8080/com.foo.HelloWorld" />

WSDL:

http://10.20.153.10:8080/com.foo.HelloWorld?wsdl

Jetty Server (默认):

<dubbo:protocol ... server="jetty" />

Servlet Bridge Server (推荐):

<dubbo:protocol ... server="servlet" />

配置 DispatcherServlet:

<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>

注意,如果使用 servlet 派发请求:

  • 协议的端口 <dubbo:protocol port="8080" /> 必须与 servlet 容器的端口相同,
  • 协议的上下文路径 <dubbo:protocol contextpath="foo" /> 必须与 servlet 应用的上下文路径相同。


1. CXF 是 Apache 开源的一个 RPC 框架,由 Xfire 和 Celtix 合并而来

2. 2.3.0

以上版本支持

相关文章
|
算法 分布式数据库
Paxos算法:分布式一致性的基石
【4月更文挑战第21天】Paxos算法是分布式一致性基础,由Leslie Lamport提出,包含准备和提交阶段,保证安全性和活性。通过提案编号、接受者和学习者实现,广泛应用于分布式数据库、锁和配置管理。其简单、高效、容错性强,影响了后续如Raft等算法,是理解分布式系统一致性关键。
|
22天前
|
SQL 运维 安全
CI/CD 中的安全闸门:不是“卡人”的流程,而是帮你少背锅的自动化安全测试流水线
CI/CD 中的安全闸门:不是“卡人”的流程,而是帮你少背锅的自动化安全测试流水线
116 4
|
1月前
|
传感器 算法 机器人
减速机行业场景化技术方案与数据化选型指南
本文系统解析减速机在新能源、机器人、智能物流等领域的场景化应用,结合15年工程经验与12个典型案例,构建涵盖选型校核、结构优化、维护策略的全流程技术方案,配套数据化计算工具与故障诊断算法,助力实现精准匹配、可靠运行与降本增效。
减速机行业场景化技术方案与数据化选型指南
|
10月前
|
人工智能 供应链 Cloud Native
《当三大前沿技术碰撞,传统会展行业转型迎来哪些惊喜》
在科技浪潮下,传统会展行业面临转型挑战。AI、云原生与区块链的融合为行业带来新机遇:AI提升效率与体验,云原生实现灵活扩展,区块链保障数据安全与信任。三者结合重塑会展生态,打造沉浸式线上展会、优化供应链管理、提供精准营销服务,推动行业健康发展。尽管技术应用尚在探索阶段,但其潜力将为会展行业注入新活力,助力数字化升级。
241 11
|
数据挖掘 BI 数据安全/隐私保护
【今日小贴士】自定义水印~
【今日小贴士】自定义水印~
|
XML 存储 Java
SpringBoot集成WebService
SpringBoot集成WebService
1235 1
|
Python
【Python】丘比特之箭,一箭穿心,快去发给你心仪的人叭~
丘比特之箭在古罗马神话中,指的是爱神丘比特所用的一支神箭。丘比特是爱神的代表,箭是他用来传达对爱情的主导权的工具。
861 0
【Python】丘比特之箭,一箭穿心,快去发给你心仪的人叭~
|
JavaScript 前端开发
JavaScript 中的 NaN:非数字值的深入解析
【8月更文挑战第31天】
682 1
|
消息中间件 物联网 Kafka
消息队列 MQ产品使用合集之QoS 1与QoS 2的主要区别有哪些
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
供应链 安全 Shell
供应链投毒预警 | 开源供应链投毒202404月报发布(含投毒案例分析)
2024年4月,悬镜供应链安全情报中心在NPM官方仓库和Pypi官方仓库上共捕获772个不同版本的恶意组件包
370 0
供应链投毒预警 | 开源供应链投毒202404月报发布(含投毒案例分析)