Dubbo3 webservice 協(xié)議

2022-04-24 16:41 更新

webservice:// 協(xié)議參考手冊(cè)

基于 WebService 的遠(yuǎn)程調(diào)用協(xié)議,基于 Apache CXF 1 的 frontend-simple 和 transports-http 實(shí)現(xiàn)。

提示

2.3.0 

以上版本支持

可以和原生 WebService 服務(wù)互操作,即:

  • 提供者用 Dubbo 的 WebService 協(xié)議暴露服務(wù),消費(fèi)者直接用標(biāo)準(zhǔn) WebService 接口調(diào)用,
  • 或者提供方用標(biāo)準(zhǔn) WebService 暴露服務(wù),消費(fèi)方用 Dubbo 的 WebService 協(xié)議調(diào)用。

依賴

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

特性

  • 連接個(gè)數(shù):多連接
  • 連接方式:短連接
  • 傳輸協(xié)議:HTTP
  • 傳輸方式:同步傳輸
  • 序列化:SOAP 文本序列化
  • 適用場景:系統(tǒng)集成,跨語言調(diào)用

約束

  • 參數(shù)及返回值需實(shí)現(xiàn) Serializable 接口
  • 參數(shù)盡量使用基本類型和 POJO

配置

配置協(xié)議:

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

配置默認(rèn)協(xié)議:

<dubbo:provider protocol="webservice" />

配置服務(wù)協(xié)議:

<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 (默認(rèn)):

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

Servlet Bridge Server (推薦):

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

配置 DispatcherServlet:

<servlet>
         <servlet-name>dubbo</servlet-name>
         <servlet-class>org.apache.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 派發(fā)請(qǐng)求:

  • 協(xié)議的端口 <dubbo:protocol port="8080" /> 必須與 servlet 容器的端口相同,
  • 協(xié)議的上下文路徑 <dubbo:protocol contextpath="foo" /> 必須與 servlet 應(yīng)用的上下文路徑相同。

  1. CXF 是 Apache 開源的一個(gè) RPC 框架,由 Xfire 和 Celtix 合并而來 


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)