论坛首页 Java企业应用论坛

关于 WSDL 样式的两点疑问

浏览 3695 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-01-21  
SOA
这里的 WSDL 样式指的是 WSDL SOAP 绑定的样式:RPC/Encode、RPC/literal、Document/Encode和Document/literal,以及Document/literal-wrap。

对于 WSDL 样式我有两处不解。

一、Document/literal 风格的绑定所产生的 SOAP 消息中没有方法名,那它是如何判断它调用的是哪个方法呢?毕竟,WSDL 所定义的 Web Service 是单一 URL 多方法的模式。莫非是根据 soapAction 的定义。但实际上,根据 SOAP标准的定义,soapAction是可有可无的东西。

二、RPC样式的缺点在于,由于定义了SOAP客户端和服务器端之间的远程方法调用接口,所以增加了客户端与服务器之间的耦合度。而用 Document/literal-wrap 模拟的RPC实际上也包含有所调用的方法的名字。所以,Document/literal-wrap 也具有RPC的较高的耦合的缺点,而在我看来松耦合是 Document/literal 的最大优点。这么看来 Document/literal-wrap 并不是一个很好的选择。是这样吗?

请大家发表一下对这两个问题的看法。
   发表时间:2008-01-22  
SSailYang 写道
这里的 WSDL 样式指的是 WSDL SOAP 绑定的样式:RPC/Encode、RPC/literal、Document/Encode和Document/literal,以及Document/literal-wrap。

对于 WSDL 样式我有两处不解。

一、Document/literal 风格的绑定所产生的 SOAP 消息中没有方法名,那它是如何判断它调用的是哪个方法呢?毕竟,WSDL 所定义的 Web Service 是单一 URL 多方法的模式。莫非是根据 soapAction 的定义。但实际上,根据 SOAP标准的定义,soapAction是可有可无的东西。

二、RPC样式的缺点在于,由于定义了SOAP客户端和服务器端之间的远程方法调用接口,所以增加了客户端与服务器之间的耦合度。而用 Document/literal-wrap 模拟的RPC实际上也包含有所调用的方法的名字。所以,Document/literal-wrap 也具有RPC的较高的耦合的缺点,而在我看来松耦合是 Document/literal 的最大优点。这么看来 Document/literal-wrap 并不是一个很好的选择。是这样吗?

请大家发表一下对这两个问题的看法。

Document/literal本来就是缺失方法名的 如果需要方法名 可以用Document/literal-wrap, 而事实上并不是每次你都需要方法名, 比如简单文档消息 client端和server端做的heartbeat

Document/literal-wrap(Document/literal) 相比RPC的优势是 wsdl里会带有soap:body的schema 而在RPC里你无法对它作validation
0 请登录后投票
   发表时间:2008-01-22  
JAVA_ED 写道
而事实上并不是每次你都需要方法名, 比如简单文档消息 client端和server端做的heartbeat

这个是什么意思?能举具体一点的例子吗?

我上传里一个 WSDL文件(解压即可),有人能解释下像这样的 WSDL 文件用 document/literal (非 wrap的)可以吗?
0 请登录后投票
   发表时间:2008-01-23  
of course  your wsdl's already been document/literal wrapped 
如果你要用非wrapped 那不是一句话的事

eg: 
<xsd:element name="oper">
    <xsd:complexType>
       <xsd:sequence>
          <param name="a" type="xsd:int"/>

非wrapped:
<schema>
    <param name="a" type="xsd:int"/>

然后引用的时候改成对应的param就好了
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics