最初,我的POJO中的所有字段都没有注释,这些字段在Soap Response中显示为
<fieldName>value</fieldName>
现在我要求显示该字段,即使该值为null;然后我为这些字段添加了注释 @XmlElement(nillable = true)
现在在我的肥皂回复中,它显示为:
<fieldName xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
我不想在我的soap响应中显示xsi,xmlns等;我怎么做?
在字段级别,类级别等显示jaxb中所有注释的任何链接,?
答案 0 :(得分:1)
嗯,首先要注意,
<fieldName/>
和
<fieldName xsi:nil="true"/>
本质上是不同的。第一个将使用""
填充String字段。后者将使用null
填充它。
不幸的是,XmlAdapters对值为null
的字段的行为取决于JAXB实现 - JDK实现根本不会调用适配器。
一个解决方案是使用@XmlAccessorType(PROPERTY)
并实施getter以返回""
而不是null
。
Eclipselink JAXB (MOXy)似乎能够处理它。
我在这里找到了类似的讨论:XmlAdapter not working as expected in JAXB RI