【问题标题】:JAX-WS + Spring : force CDATA on some inputsJAX-WS + Spring:在某些输入上强制 CDATA
【发布时间】:2023-04-06 10:16:01
【问题描述】:

我目前在使用 Spring + JAX-WS 时遇到问题。我有一个带有@Webmethod 的方法,它返回一个自定义对象。在这个对象中,有一些 String 字段可能包含一些 HTML...

生成的XML很好,除非其中一个字段中有HTML,所以我试图添加一个cdata节点以防止转义,但它没有成功:(

我尝试使用EclipseLink JAXB (MOXy) 添加@XmlCDATA,但似乎没有效果。

还有一个奇怪的事情,有时候一个CDATA节点是自动添加的,什么都不做,而是把同一个字符串复制两次并拼接起来,或者用字符串的一部分(比如“The sentence”=>“The sentence句子“),CDATA节点不再存在。我无法确定 CDATA 是什么时候添加的,或者为什么每次都没有添加,它似乎是随机的(但我当然认为不是)。

有人对如何在 Spring 中强制使用 CDATA 节点(注解、xml 配置、其他...)有建议吗?谢谢

【问题讨论】:

    标签: java xml spring jax-ws cdata


    【解决方案1】:

    在将 HTML 添加到 XML 之前,您可以添加 CDATA 或正确编码 HTML。

    我想知道为什么需要将 HTML(客户端内容)发送到 SOAP 服务。可能是一个糟糕的设计。

    【讨论】:

    • 感谢您的回答。这不是真正的 HTML,只是一些存储在数据库中的文本,通过调用 WS 发送到移动应用程序,但文本可以包含一些 HTML 元素,例如

      ,必须被解释正确...我已经尝试添加“”但在某些情况下有2个cdata节点,因为在某些情况下会发生奇怪的事情(见第一篇文章)。编码HTML可能是一个解决方案,我会考虑它

    • 我会说这些听起来像 CSS 项目,可以通过在内容之外设置样式来更好地处理。
    • 不,绝对没有 CSS,只有一些文本,在某些情况下还有一些基本 HTML 元素的文本
    • 不是你的错;我想每个人都希望它们不存在,因为它们是风格。那时还没有 CSS。您应该重新考虑将它们从发送到移动设备的响应中移出。
    • ?我只是说文本中没有CSS项...即使有,也不应该解释,因为没有?
    猜你喜欢
    • 2018-09-13
    • 2011-02-25
    • 2013-12-04
    • 2017-01-01
    • 2012-07-11
    • 1970-01-01
    • 2015-07-30
    • 2011-07-18
    • 1970-01-01
    相关资源
    最近更新 更多