我目前正在使用jaxbDataFormat将填充的xjc类封送到xml文件/字符串。但是,当我编组时,只有填充的字段才会打印。例如,假设version015v003有2个String字段,field1和field2。我设置了field1 =""但是不要设置field2。我仍然希望生成的xml同时具有field1和field2。如下所示。有关如何实现这一目标的任何建议吗?
<field1>something</field1>
<field2></field2>
JaxbDataFormat jaxbDataFormat = new JaxbDataFormat("com.ups.brokerage.model.boss.version015v003");
from("direct:convertToEntryPacket")
.routeId("BasXmlTranslation.mapToEntryPacket")
.setExchangePattern(ExchangePattern.InOut)
.bean("logging", "info(*, 'About to convert to entry packet')")
.bean(entryPacketToBasMapper, "mapEntryPacketToBas(*)")
.marshal(jaxbDataFormat)
.bean("logging", "info(*, 'TRANSFORM: entry packet made... Message Body: ${body}')")
.setHeader(Exchange.HTTP_RESPONSE_CODE, constant(200))
.convertBodyTo(String.class);
答案 0 :(得分:0)
解决方法:将空字段转换为空字符串(null - &gt;“”)
变通方法会显示该字段,但可能会显示为<field2/>
对于纯jaxb方式,您可以查看default value或null field的其他SO答案。