webservice的一些额外说明

wsimport  是根据JDK1.6.0_21及以上的生成本地代码的,它只能解析服务器端的SOAP协议为1.1,不能解析SOAP1.2的协议。如果解析SOAP1.2 将会解析不完全。


wsdl2java 可以支持SOAP1.1 和SOAP1.2的协议


!!!主要分析1.1与1.2的区别点,注意1.1的客户端方式可以兼容1.2的服务端。


默认情况下,Jdk1.6只支持soap1.1


目前WebService的协议主要有SOAP1.1和1.2。


看wsdl文件中,
如果有<soap:address标签的表示用的是soap1.1
如果有<soap12:address标签的表示用的是soap1.2


===================SOAP1.1和1.2的区别:===========================
SOAP1.1版本与SOAP1.2版本在头信息上存在差异。
  SOAP1.1存在SOAPAction的请求头。
  SOAP1.2没有SOAPAction的请求头。


基于SOAP1.1生成的WSDL和基于SOAP1.2生成的WSDL也不一样。
  主要看命名空间。


在CXF中两种协议请求的方式也不一样。
  1.1为content-Type:text/xm;charset=UTF-8
  1.2为content-Type:application/soap+xml;charset=UTF-8


两者的命名空间不同。 
命名空间:
 
Soap1.1的命名空间:
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
 
Soap1.2 命名空间:
   xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"
 
SOAP1.1的HTTP请求头:
 
     POST /xe_cxf2.4_soap12_spring_web/ws/helloworldsoap12?wsdl HTTP/1.1
Content-Type: text/xml; charset=UTF-8
Accept: **
User-Agent: Apache CXF 2.4.0
Cache-Control: no-cache
Pragma: no-cache
Host: localhost:6767
Connection: keep-alive
Content-Length: 214
SOAP1.2的请求头:
POST /xe_cxf2.4_soap12_spring_web/ws/helloworldsoap12?wsdl HTTP/1.1
Content-Type: application/soap+xml; charset=UTF-8
Accept: */*
User-Agent: Apache CXF 2.4.0
Cache-Control: no-cache
Pragma: no-cache
Host: localhost:6767
Connection: keep-alive
Content-Length: 214


SOAP1.1和1.2的WSDL文件的差别:
在定义Service部分差别如下:
lSoap1.1是以:soap:address定义。
lSoap1.2是以:  soap12:address定义。-jdk1.6不支持12形式的访问
===================SOAP1.1和1.2的区别:===========================




请详细阅读该文章(比较全面的剖析webservice):
http://my.oschina.net/u/1425737/blog/217758


java开发webservice的服务端:
http://blog.sina.com.cn/s/blog_a0e7e34c0101959p.html




建议用jdk自带的wsimport的方式来进行客户端调用。


总结:
开发webservice服务端的方式(基于java语言):axis2、cxf、jdk自带方式
webservice客户端调用方式:jdk自带、axis2


推荐的方式:
开发webservice服务端:cxf(整合spring的方式)
webservice客户端调用:jdk自带的方式(至少jdk1.7。最低:JDK1.6.0_22)


还可以将webservice的客户端的生成代码,变为jar。将jar导入到需要调用webservice的工程里。这样会方便很多。







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值