0

我有一个使用 Spring 框架开发的 SOAP Web 服务。每当请求包含一些无效数据时,我需要显示如下错误消息

Error occurred. Invalid data for <Field Name>.

所以我的代码如下所示用于名称验证。当 name 字段没有传递任何值时,此错误将作为响应发送。

Assert.notNull(name, "Error occurred. No value passed for the field <name>. ");

所以我期望的结果是

Error occurred. No value passed for the field <name>.

但是 SOAP UI 中的响应如下所示。

Error occurred. No value passed for the field &lt;name>.

如何在 SOAP UI 中显示正确的 < 符号?我试过CDATA。但不确定接收方如何使用 CDATA 处理请求。

SOAP UI 中的 CDATA 消息如下所示

Error occurred. No value passed for the field <![CDATA[<]]name>.
4

1 回答 1

2

XML 规范指出:

& 符号 (&) 和左尖括号 (<) 不得以其文字形式出现,除非用作标记分隔符,或者在注释、处理指令或 CDATA 部分中。如果在其他地方需要它们,则必须分别使用数字字符引用或字符串“ & ”和“ < ”对其进行转义。右尖括号 (>) 可以使用字符串“>”表示,并且为了兼容性,必须使用“>”或出现在内容中的字符串“]]>”中的字符引用进行转义,当该字符串未标记 CDATA 部分的结尾时。

因此,您需要转义错误字符串中的左尖括号:

Error occurred. No value passed for the field &lt;name>.

或者将整个错误字符串封装在 CDATA 部分中:

<![CDATA[Error occurred. No value passed for the field <name>.]]>

有关详细信息,请参阅http://www.w3.org/TR/xml/#syntax

于 2013-07-15T11:10:08.493 回答