0

最初,我的 POJO 中有所有没有注释的字段,这些在 Soap Response 中显示得很好

<fieldName>value</fieldName>

现在我需要显示该字段,即使该值为空;然后我为这些字段添加了注释 @XmlElement(nillable = true)

现在在我的肥皂响应中,它显示为:

<fieldName xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>

我不想在我的肥皂响应中显示 xsi、xmlns 等;我怎么做?

在字段级别、类级别等显示 jaxb 中的所有注释的任何链接?

4

1 回答 1

1

嗯,首先要知道,

<fieldName/>

<fieldName xsi:nil="true"/>

本质上是不同的。第一个将填充一个字符串字段""。后者将填充它null

不幸的是,带有值的字段的 XmlAdapters 的行为null取决于 JAXB 实现 - JDK 实现根本不会调用适配器。

一种解决方案是使用@XmlAccessorType(PROPERTY)并实现 getter 以返回""而不是null.

Eclipselink JAXB (MOXy)似乎能够处理它。

我在这里找到了类似的讨论:XmlAdapter not working as expected in JAXB RI

于 2013-05-08T23:03:47.583 回答