jaxb - parse - unmarshaller string xml
¿Cómo puedo hacer que JAXB llame a un método después de que se haya completado la desarticulación de un archivo XML en un objeto? (3)
Estoy usando JAXB para desmarcar un archivo XML en un objeto Java: cosas estándar. Una vez que JAXB haya completado esto, me gustaría que se invocara un método en el objeto recién creado.
¿Hay un mecanismo para hacer esto? Prefiero que el objeto, no una entidad externa, haga esto para mantener la construcción en un solo lugar.
Gracias.
Además de Unmarshaller.Listener, puede agregar los siguientes métodos a sus propias clases de modelo de dominio.
-
public void beforeUnmarshal(Unmarshaller unmarshaller, Object parent)
-
public void afterUnmarshal(Unmarshaller unmarshaller, Object parent)
De: http://java.sun.com/javase/6/docs/api/javax/xml/bind/Unmarshaller.Listener.html
Para poder ejecutar el código después de que se produjera la anulación de tramas, necesita un Unmarshaller-Listener
Sin embargo, no estoy seguro, si el escucha se invoca después de establecer las propiedades o antes.
NOTA: El oyente está disponible desde JAXB- 2.0 (JDK- 6 )
Puede simplemente agregar el siguiente método a su definición de objeto:
void afterUnmarshal(Unmarshaller u, Object parent) {
...
}
Se llamará una vez que el objeto actual se haya deserializado completamente. Consulte también la documentación sobre devoluciones de llamada no malvadas.