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等算法,是理解分布式系统一致性关键。
|
1月前
|
SQL 运维 安全
CI/CD 中的安全闸门:不是“卡人”的流程,而是帮你少背锅的自动化安全测试流水线
CI/CD 中的安全闸门:不是“卡人”的流程,而是帮你少背锅的自动化安全测试流水线
142 4
|
2月前
|
传感器 算法 机器人
减速机行业场景化技术方案与数据化选型指南
本文系统解析减速机在新能源、机器人、智能物流等领域的场景化应用,结合15年工程经验与12个典型案例,构建涵盖选型校核、结构优化、维护策略的全流程技术方案,配套数据化计算工具与故障诊断算法,助力实现精准匹配、可靠运行与降本增效。
减速机行业场景化技术方案与数据化选型指南
|
2月前
|
canal 缓存 关系型数据库
微服务原理篇(Canal-Redis)
本文介绍了ES索引同步的常见方案,重点讲解Canal+MQ数据同步机制。通过解析MySQL的binlog日志,Canal模拟slave伪装接入主库,实现增量数据捕获,并结合RabbitMQ保证消息顺序性地同步至Elasticsearch。同时探讨了缓存一致性问题,提出使用分布式锁(如Redis)控制并发写操作,避免双写不一致。还涵盖Redis持久化、集群模式、过期淘汰策略及缓存三剑客(穿透、雪崩、击穿)的解决方案,系统梳理了高并发场景下的数据同步与缓存保障技术体系。
88 0
 微服务原理篇(Canal-Redis)
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
大模型专业名词解释手册
本手册由油炸小波设计提示词、Manus创作,系统梳理大语言模型核心概念,涵盖基础原理、训练技术、优化压缩、推理应用、评估调试及伦理安全六大模块,深入浅出解析LLM关键技术术语。
292 0
|
2月前
|
Arthas 存储 运维
记Arthas实现一次CPU排查与代码热更新
本文介绍使用Arthas排查Java应用CPU占用过高问题的完整流程,涵盖线程分析、阻塞定位、watch命令追踪异常、jad反编译实现热更新及火焰图分析,实现无需重启应用的高效故障排查与代码修复。
91 0
|
11月前
|
人工智能 供应链 Cloud Native
《当三大前沿技术碰撞,传统会展行业转型迎来哪些惊喜》
在科技浪潮下,传统会展行业面临转型挑战。AI、云原生与区块链的融合为行业带来新机遇:AI提升效率与体验,云原生实现灵活扩展,区块链保障数据安全与信任。三者结合重塑会展生态,打造沉浸式线上展会、优化供应链管理、提供精准营销服务,推动行业健康发展。尽管技术应用尚在探索阶段,但其潜力将为会展行业注入新活力,助力数字化升级。
256 11
|
数据挖掘 BI 数据安全/隐私保护
【今日小贴士】自定义水印~
【今日小贴士】自定义水印~
|
XML 存储 Java
SpringBoot集成WebService
SpringBoot集成WebService
1269 1
|
Python
【Python】丘比特之箭,一箭穿心,快去发给你心仪的人叭~
丘比特之箭在古罗马神话中,指的是爱神丘比特所用的一支神箭。丘比特是爱神的代表,箭是他用来传达对爱情的主导权的工具。
906 0
【Python】丘比特之箭,一箭穿心,快去发给你心仪的人叭~