0

我们在现有的 WSDL 中为新客户端做了一些修改。修改就像在请求和响应中添加了一些参数。如下所述,getDetails 响应仅包含地址字段,现在将 firstName 添加到其中:

早些时候:

<wsdl:message name="getDetails_response">      
    <wsdl:part name="address" type="tns:addType"></wsdl:part>
</wsdl:message>

之后:

 <wsdl:message name="getDetails_response">
      <wsdl:part name="firstName" type="tns:nameType"></wsdl:part>
      <wsdl:part name="address" type="tns:addType"></wsdl:part>
 </wsdl:message>

我担心是否有任何选项可以使旧客户端不受上述更改的影响,或者仅重新编译 WSDL 就可以完成工作?我不希望那个旧客户端因为这个 WSDL 更改而不得不更改它的源代码?如何使其向后兼容?

4

2 回答 2

0

WSDL 描述中的部分不应用于实现业务信息。它应该尽可能保持静止。这些字段用于定义标题、正文、自定义签名等部分...

于 2014-05-13T12:14:36.527 回答
0

如果您修改响应,这将对 wsdl 产生影响。如果你不想要这个,你可以返回旧的 wsdl(你需要把它放在你的 war/ear 的 /resources 文件夹中)。我做过一次,所以这是可能的。但这有点脏...

于 2013-06-04T07:35:38.170 回答