帮助.NET开发人员使用Coldfusion来使用wcf服务
我是一名没有Coldfusion经验的.NET开发人员,但我需要编写cf代码才能访问我设置的wcf服务。 我有几个WCF服务在IIS 7中用WsHttpBinding托管,我可以通过向.NET客户端添加服务引用并使用客户端类来使用服务。
对于.NET开发人员来说,这非常简单:
var addressClient = new Service.AddressClient();
addressClient.AddressDTO[] addresses = addressClient.GetAddresses();
很显然,Visual Studio在幕后花了很多时间来从WSDL中设置这些客户端类。
我见过使用cfinvoke调用Web服务的Coldfusion示例,但是他们实际上并没有从WSDL设置客户端类并从Web服务响应中创建它们。
那么,Coldfusion如何做到这一点呢?
提前致谢!
其他人是正确的,如果你的web服务正在返回简单的数据类型,cf会将它们映射到cf数据类型,一切都很简单。 在某些情况下,尽管您必须自己将复杂数据类型转换为cf数据类型。
cflib.org有一些功能来处理这些,所以你可能想看看那里。 这里是一个函数,用于将从Web服务返回的.net数据集转换为cf查询。 希望这会给你一个啊哈的时刻:
http://www.cflib.org/index.cfm?event=page.udfbyid&udfid=1580
CF的问题在于,在处理复杂对象方面做得并不好。 所以只要服务只是期望字符串的参数和你的确定,但如果它想要一个复杂的对象嵌套它分崩离析。
基本上你必须深入到Axis Java对象。
我在此之前回答了这个问题:
Web服务期望DataSet对象,我如何通过ColdFusion或原始XML提供该服务?
Adobe实际上有一个非常好的参考,详细介绍了从WSDL到ColdFusion代码使用Web服务所需的所有步骤:
ColdFusion:消费Web服务
如果您在WCF中使用WsHttpBinding
,那么您的Web服务应该像示例中的一样工作(您可以将WSDL与示例WSDL进行比较,以了解如何手动创建所有内容)。
上一篇: help a .NET developer consume a wcf service using coldfusion