加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

对WebService "style" "use"消息格

发布时间:2020-12-17 01:14:16 所属栏目:安全 来源:网络整理
导读:?前段时间部署了几个WebService接口,发现XFire的services.xml文件有这么两标签,"style"和"use",很好奇他们有什么用处。就去找了些资料。资料不太好找,但基本还是搞清楚了。 简单地说style和use其实是WSDL声明服务是如何绑定到消息协议的。我们知道WSDL是

?前段时间部署了几个WebService接口,发现XFire的services.xml文件有这么两标签,"style"和"use",很好奇他们有什么用处。就去找了些资料。资料不太好找,但基本还是搞清楚了。

简单地说style和use其实是WSDL声明服务是如何绑定到消息协议的。我们知道WSDL是用来描述服务接口的,也是用来告诉客户端该如何生成SOAP消息的。style和use不同,客户端生成的SOAP消息就不一样,服务端的返回的SOAP消息格式也会不一样。这说的比较抽象,不要紧,耐心点看下去。

首先我们要搞清楚,services.xml是XFire这个框架自己的配置文件,跟WSDL是不一样的
XFire关于这两标签的定义如下:
<style>document|rpc|message|wrapped</style>
<use>literal|encoded</use>
事实上XFire的use标签目前只支持literal值。详细可看参考资料[1]。

以上两标签使用的值不一样,XFire为接口动态生成的WSDL就不一样,而WSDL的style只有Document和RPC两种取值,XFire多出来的那几种值其实是一种组合方式,例如wrapped就是Document+wrapped,Document就是Document+nowrapped.

写到这里,老毛病又犯了,懒了,不太想写了,呵呵。下面直接贴一些例子吧:
RPC+Encoded SOAP Message:

<soap:envelope>
    <soap:body>
        <myMethod>
            <x xsi:type="xsd:int">5</x>
            <y xsi:type="xsd:float">5.0</y>
        </myMethod>
    </soap:body>
</soap:envelope>

RPC+Literal SOAP Message

<soap:envelope>
    <soap:body>
        <myMethod>
            <x>5</x>
            <y>5.0</y>
        </myMethod>
    </soap:body>
</soap:envelope>

看出来了没,Encoded和Literal的差别就在于参数类型的定义。
Document nowrapped + Literal SOAP Message:

<soap:envelope>
    <soap:body>
        <xElement>5</xElement>
        <yElement>5.0</yElement>
    </soap:body>
</soap:envelope>

Document wrapped + Literal SOAP Message:

<soap:envelope>
    <soap:body>
        <myMethod>
            <x>5</x>
            <y>5.0</y>
        </myMethod>
    </soap:body>
</soap:envelope>

看到区别了没,一个有方法名,一个没有。

一般情况来说,Document wrapped + Literal是最适用的,这也是大部分框架给出的默认值。
参考资料[2] [3]有相当详细的比较,有兴趣的朋友可以自己去看看。
参考资料:
[1] services.xml Reference
[2] Which style of WSDL should I use?
[3] wsdl:binding "style","use",and message format

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读