【发布时间】:2015-05-29 09:57:07
【问题描述】:
我编写了一个非常基本的 CFC,其中包含一个“远程”功能。
我已将函数的响应类型设置为“XML”,将响应格式设置为“WDDX”。
在函数内部,我使用coldfusion XmlNew / XmlElemNew / ArrayAppend 等中的标准xml 函数来生成返回XML。
使用 cffile 或 cflog 并将 XML 转储到文件/日志将导致如下所示:
<rootnode>
<item>This is item 1</item>
<item>This is item 2</item>
<item>This is item 3</item>
</rootnode>
同样,当我使用 SOAP-UI 来使用 Web 服务时,它也没有问题。
但是我现在需要在内容上使用 CDATA 标记,因为其中有一些奇怪的字符。
所以我只是觉得填节点的时候是从XMLText切换到XMLCData的情况。
我进行了切换,这一切都适用于文件/日志,但在 SOAP-UI 中,它只会导致所有节点变为空白并最终如下所示:
<rootnode>
<item/>
<item/>
<item/>
</rootnode>
我什至尝试过使用 CFXML 标签转换 XML 的整个创建过程。即
<cfxml variable="xmlObj">
<rootnode>
<cfloop query="getdata">
<item><cfoutput>#getData.Symptom#</cfoutput></item>
</cfloop>
</rootnode>
</cfxml>
上述方法有效,但只要我将上述代码的中间行包含在 CData 中,问题就会再次出现。
同样,我编写了以下测试 CFM 页面
<cfset DataManager = createObject("component","com.DataManager")>
<cfset ret = DataManager.GetItems(1)>
<cfinvoke webservice="http://localhost:8500/mysite/com/DataManager.cfc?wsdl" method="GetItems" language="1" returnVariable="ret2">
<cfdump var="#ret#">
<cfdump var="#ret2#">
如上所示,“ret1”的 cfdump 会按预期显示文本。 "ret2" 的 cfdump 存在上述问题。
任何帮助将不胜感激。
我要重写整个内容以返回 JSON!
【问题讨论】:
-
只是补充一下,我发现它不是特定于 SOAP-UI 的。
标签: xml web-services soapui coldfusion-10 cdata