论坛首页 Java版 SOA

关于 WSDL 样式的两点疑问

浏览 744 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2008-01-21 关键字: document/literal, document/literal-wrap
这里的 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版 SOA

跳转论坛:
JavaEye推荐