
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