Xml 通过SoapUI使用ColdFusion编写的web服务会丢失所有CDATA标记

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>

我写了一个非常基本的CFC,其中有一个“远程”功能

我已经将函数的responsetype设置为“XML”,responseformat设置为“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>
<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特有的。