webservice://
![]() | 2.3.0以上版本支持。 |
![]() | 基于CXF的frontend-simple和transports-http实现。 |
![]() | CXF是Apache开源的一个RPC框架:http://cxf.apache.org,由Xfire和Celtix合并而来 。 |
依赖:
可以和原生WebService服务互操作,即:
- 提供者用Dubbo的WebService协议暴露服务,消费者直接用标准WebService接口调用,
- 或者提供方用标准WebService暴露服务,消费方用Dubbo的WebService协议调用。
基于WebService的远程调用协议。
- 连接个数:多连接
- 连接方式:短连接
- 传输协议:HTTP
- 传输方式:同步传输
- 序列化:SOAP文本序列化
- 适用场景:系统集成,跨语言调用。
(1) 约束:
- 参数及返回值需实现Serializable接口
- 参数尽量使用基本类型和POJO。
(2) 配置:
Define hessian protocol:
Set default protocol:
Set service protocol:
Multi port:
Directly provider:
WSDL:
h4. Jetty Server: (default)
h4. Servlet Bridge Server: (recommend)
web.xml:
注意,如果使用servlet派发请求:
- 协议的端口<dubbo:protocol port="8080" />必须与servlet容器的端口相同,
- 协议的上下文路径<dubbo:protocol contextpath="foo" />必须与servlet应用的上下文路径相同。
Labels:
None
5 Comments
comments.show.hide五月 02, 2013
Anonymous
Dubbo和webservice集成时
注册服务时服务提供者配置:
<dubbo:protocol id="webservice" name="webservice" port="8080"
server="servlet" contextpath="DubboTest" />
<dubbo:service interface="com.dubbo.test.DubboTest.ServiceApi" ref="serviceApiImpl" protocol="webservice" />
<bean id="serviceApiImpl" class="com.dubbo.test.DubboTest.ServiceApiImpl" />
还需要其他的配置吗?
我这样配置敲地址http://ip:8080/DubboTest/com.dubbo.test.DubboTest.ServiceApi?wsdl
显示No service was found.
我注意到服务启动时info显示
2013-05-02 16:46:11,468 INFO [org.apache.cxf.service.factory.ReflectionServiceFactoryBean] - <Creating Service
ServiceApi from class com.dubbo.test.DubboTest.ServiceApi>
而我将协议换成hessian后一切正常。
dubbo版本号2.3.4
五月 02, 2013
Anonymous
2013-05-02 16:46:11,468 INFO [org.apache.cxf.service.factory.ReflectionServiceFactoryBean] - <Creating Service
ServiceApi from class com.dubbo.test.DubboTest.ServiceApi>
七月 10, 2013
Anonymous
经测试,注解配置:@Service(version = "1.0.0", protocol=
,path="services")无效,只能在xml中配置<dubbo:service/>
七月 10, 2013
Anonymous
说明一下,是进行webservice调用无效
九月 09, 2013
Anonymous
能不能给个详细点的例子