¿Cómo puedo tener JAXB llamar a un método después de que se ha completado unmarshalling un archivo XML en un objeto?

StackOverflow https://stackoverflow.com/questions/976378

  •  13-09-2019
  •  | 
  •  

Pregunta

Estoy utilizando JAXB para Resolver referencia un archivo XML en un objeto Java - cosas estándar. Una vez que se ha completado este JAXB, me gustaría un método que se llama en el objeto recién creado.

¿Existe un mecanismo para hacer esto? Yo prefiero el objeto, no una entidad externa, hacen esto para mantener la construcción en un solo lugar.

Gracias.

¿Fue útil?

Solución

Para poder ejecutar código después de unmarshalling tuvo lugar, es necesario un Unmarshaller-Oyente

Sin embargo, no estoy seguro, si el oyente se invoca después de la propiedades se establecen o antes.

Nota: El oyente está disponible desde JAXB- 2.0 (JDK- 6 )

Otros consejos

Puede sencilla agregue el método siguiente a la definición de objeto:

void afterUnmarshal(Unmarshaller u, Object parent) {
  ...
}

Se va a llamar una vez que el objeto actual ha sido completamente deserializado. Véase también la documentación sobre unmarshalling devoluciones de llamada

Además de la Unmarshaller.Listener puede añadir los siguientes métodos para las clases del modelo de dominio a sí mismos.

  • public void beforeUnmarshal(Unmarshaller unmarshaller, Object parent)
  • public void afterUnmarshal(Unmarshaller unmarshaller, Object parent)

A partir de: http://java.sun.com /javase/6/docs/api/javax/xml/bind/Unmarshaller.Listener.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top