在Soap Request中发送无效的XML字符

时间:2010-03-19 18:51:32

标签: java xml soap axis escaping

我正在尝试在肥皂请求中发送特殊(&'(单引号))字符。我使用轴1.4。 Web服务客户端位于weblogic服务器中,Web服务服务器是ibm主机(COBOL程序)。

来自客户端的请求数据包含特殊字符(&符号),该字符转换为&

我试图用CDATA将其括起来作为

<![CDATA[Some Name & Some Data ]]> 转换为

&lt;![CDATA[Some Name &amp; Some Data]]&gt; 

web服务客户端是从wsdl生成的,所以我无法使用CDATA api来构造请求。我能够将它设置为字符串值,并且它正在转换。

对此的任何帮助将不胜感激。如果您需要更多信息,请与我们联系。

1 个答案:

答案 0 :(得分:7)

Web服务客户端存根正在为您执行XML编码。 Web服务需要XML,它将&'编码为实体引用,以便您发送有效的XML。

对于XML解析器,它会“看到”&amp;&并且您没有问题。

如果服务器无法处理实体引用,则COBOL“Web服务”不会执行它应该执行的操作。这使得您(以及基于标准的工具)很难从WSDL生成客户端存根,这本质上是描述数据格式和交换规则的合同。

如果WSDL和SOAP服务不符合规定的接口规则,那么提供它的重点是什么?