我们已在现有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更改而必须更改其源代码?如何使其向后兼容?
答案 0 :(得分:0)
如果修改响应,则会对wsdl产生影响。如果您不想这样,您可以返回旧的wsdl(您需要将其放入war / ear中的/ resources文件夹中)。我做了一次,所以有可能。 但这有点污垢......
答案 1 :(得分:0)
WSDL描述中的部分不应该用于实现业务信息。 它应尽可能保持静止。 这些字段用于定义标题,正文,自定义签名等部分......