Xml 通过SoapUI使用ColdFusion编写的web服务会丢失所有CDATA标记
我写了一个非常基本的CFC,其中有一个“远程”功能 我已经将函数的responsetype设置为“XML”,responseformat设置为“WDDX” 在函数内部,我使用coldfusion XmlNew/XmlElemNew/ArrayAppend等中的标准xml函数生成返回xml 使用cffile或cflog并将XML转储到文件/日志会导致如下结果:Xml 通过SoapUI使用ColdFusion编写的web服务会丢失所有CDATA标记,xml,web-services,soapui,coldfusion-10,cdata,Xml,Web Services,Soapui,Coldfusion 10,Cdata,我写了一个非常基本的CFC,其中有一个“远程”功能 我已经将函数的responsetype设置为“XML”,responseformat设置为“WDDX” 在函数内部,我使用coldfusion XmlNew/XmlElemNew/ArrayAppend等中的标准xml函数生成返回xml 使用cffile或cflog并将XML转储到文件/日志会导致如下结果: <rootnode> <item>This is item 1</item> <item>
<rootnode>
<item>This is item 1</item>
<item>This is item 2</item>
<item>This is item 3</item>
</rootnode>
<rootnode>
<item/>
<item/>
<item/>
</rootnode>
这是项目1
这是第2项
这是第3项
同样,当我使用SOAP-UI来使用Web服务时,它也可以正常工作
但是,我现在需要在内容上使用CDATA标记,因为其中有一些奇怪的字符
因此,我只是认为在填充节点时,应该从XMLText切换到XMLCData
我进行了切换,所有操作都适用于文件/日志,但在SOAP-UI中,它只会导致所有节点为空,并以如下方式结束:
<rootnode>
<item>This is item 1</item>
<item>This is item 2</item>
<item>This is item 3</item>
</rootnode>
<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了 是的,我最终完全靠运气解决了这个问题 在ColdFusion中,Axis1和Axis2都添加了10支持 在以前的ColdFusion版本中,仅支持Axis1 ColdFusion 10中的默认值是Axis2 有一个设置可以添加到CFC中,以覆盖此设置并恢复到Axis1,称为wsversion(参见下面的示例)
恢复到Axis1似乎已经解决了这个问题,现在我看到CDATA标记在SOAP-UI中出现
因此,尽管上述方法解决了这个问题,但并没有解释为什么它会导致Axis2出现问题。我发现它不是SOAP-UI特有的。