我继承了一些由ColdFusion 9生成的WSDL的Web服务.CF9默认是RPC编码的,所以它们就是这样.但是,最近我注意到.NET框架的新版本(或者可能是Visual Studio的新版本)不喜欢RPC编码的WSDL.在测试中(在C#中),我验证了VS 2013在文档 – 文字样式中仅正确地使用了服务.
我当然愿意改变风格以便更普遍使用,但是这个网络服务已经存在了一段时间(并且被很多人使用,我敢肯定),所以我想确保我掌握可能产生的影响.我也想知道是否有可能让ColdFusion生成两个不同的WSDL(或者允许动态设置编码?).基本上我很欣赏任何有关使其兼容的最佳方法的建议(同时保持向后兼容性).谢谢.
解决方法
如果您可以使用文档文字样式Web服务的第二个URL,则可以扩展现有的CFC.您的新CFC将具有与主Web服务相同的所有功能和逻辑.它还可以防止a没有其他代码可以维护.对我来说唯一不知道的是,这是否会产生任何重大的额外开销.
<cfcomponent extends="yourExistingCFC" style="document" output="false"></cfcomponent>
我确实尝试在我的一个测试Web服务上将文档类型设置为document-literal. SoapUI在更改后无法解析文档文字WSDL,但Visual Studio可以.由此,我会对更改现有CFC的文档样式犹豫不决,因为您无法分辨所有客户端环境将如何处理更改.