¿Cómo puedo tener JAXB llamar a un método después de que se ha completado unmarshalling un archivo XML en un objeto?
-
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.
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