我已经创建了WDDX服务,但它返回的是ColdFusion而不是SOAP。如何让它返回SOAP而不是WDDX?
发布于 2011-11-08 01:32:50
对于复杂的对象,您需要正确设置CFCs。阅读:Using ColdFusion components to define data types for web services
XML:或者,您可以使用<cfxml>自己创建对象的表示,然后在cffunction中返回带有returnType="xml"的对象。
您可以查看coldbox的XML作为代码示例,用于将内置的CF复杂类型转换为XMLConverter。
发布于 2011-11-08 01:33:37
让<cffunction>返回一个XML对象,并将“return”参数设置为"plain“。
<cffunction name="GetData" returntype="xml" returnformat="plain">发布于 2011-11-08 06:06:53
带有access=remote的CFC方法应该返回soap,而不是WDDX。我确信我已经使用这个功能很多年了。我怀疑可能发生的情况是,内容类型是基于客户端发出的请求的。我会下载Soap-UI并测试http://your.server/yourCFC.cfc?wsdl,看看SOAP-UI是否将WDDX抛回给它。如果是这样的话,我有点困惑,但无论如何请在这里报告它,我会进一步查看的。如果Soap-UI看到正确的响应,请查看它正在发送的标头,并将它们与您发出的请求进行比较(可能是通过浏览器?)
您还可以使用Fiddler记录soap-ui流量,并将其与任何其他请求源进行比较。
上面的http请求的事情可能是完全关闭的,但它相对容易检查,我认为它正在敲响警钟。
您可能还想检查您正在编写的函数的返回类型。为了让CF生成一个好的WSDL,它需要能够从您返回的CFC中提取元数据。
https://stackoverflow.com/questions/8040098
复制相似问题