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:

Envio de mensaje mediante web services

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

Deja un comentario

Tu dirección de correo electrónico no será publicada.