
Cuando se está trabajando con web services y una las formas de enviar y recibir información es por medio de cadenas XML. Para esto se puede implementar JAXB que proporciona dos características principales: la capacidad de serializar las referencias de objetos Java a XML y la inversa, es decir, deserializar XML en objetos Java.
Ejemplo gráfico:
Para la conversión de una clase a XML se tendrá en cuenta lo siguiente (Ejemplo Básico):
1. La clase que se va a serializar y vemos que debe tener la notación @XmlRootElement.
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class HuellaXml {
private byte[] huella;
public byte[] getHuella() {
return huella;
}
public void setHuella(byte[] huella) {
this.huella = huella;
}
}
2. Ejemplo de método donde se implementa y devuelve la cadena.
import java.io.Serializable;
import java.io.StringReader;
import java.io.StringWriter;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
public class ConversionJAXB {
public String convertirObjetoHuellaToXML(byte[] huella)
throws BramantiException {
StringWriter w = new StringWriter();
try {
HuellaXml huellaXml = new HuellaXml();
huellaXml.setHuella(huella);
JAXBContext context = JAXBContext.newInstance(HuellaXml.class);
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(huellaXml, w);
} catch (JAXBException ex) {
throw new BramantiException(ex.getMessage(), ex);
}
return w.toString();
}
}
Espero que me haya hecho entender, cualquier inquietud no dudes en contactarme. Buen día
