/ / Unmarshalling nillable doble valores - java, apache, jaxb, jax-ws

valores dobles no nulosos no destructivos - java, apache, jaxb, jax-ws

Tengo dos campos en clase:

@XmlElement(nillable=true)
protected Integer roomNumberTo;
@XmlElement(nillable=true, type = Double.class)
protected Double sizeFrom;

ambos campos son opcionales. El problema al que me enfrento es que el campo entero puede aceptar valores nulos, pero el doble no puede.

<urn: sizeFrom> </ urn: sizeFrom> // siempre requiere un valor.
<urn: roomNumberFrom> </ urn: roomNumberFrom> //

Si se envía la solicitud anterior, obtengo un error de "No asalto":
en org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall (JAXBEncoderDecoder.java:881) en org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall (JAXBEncoderDecoder.java:702)

Causado por: javax.xml.bind.UnmarshalException: - con excepción vinculada: [java.lang.NumberFormatException:]

Respuestas

0 para la respuesta № 1

Como Tinker ya señaló, la razón <urn:roomNumberFrom></urn:roomNumberFrom> no está fallando, es que es simplemente un elemento desconocido y no está asignado al campo roomNumberTo.

Si usa JAXB para declarar un elemento XML que no se puede imprimir con @XmlElement(nillable=true), un elemento vacío no representa el valor nulo. Si asigna el espacio de nombres del esquema XML al prefijo "xsi", puede declarar un valor nulo como este:

<urn:sizeFrom xsi:nil="true" />