You are viewing an older version of this topic. To go to a different version, use the version menu at the upper-right. +

JAXB Transformers

The JAXB transformers allow objects to be serialized to XML and back again using the JAXB binding framework. To configure a transformer that will convert XML to a Person object use 

<mulexml:jaxb-xml-to-object-transformer name="XmlToPerson" jaxbContext-ref="myJaxb" returnClass="org.mule.jaxb.model.Person"/>

You can then reference this transformer from an endpoint:

<jms:inbound-endpoint queue="another.queue" transformer-refs="XmlToPerson" />

The returnClass is a common transformer attribute and defines that this transformer will create a Person object.

Note that we have a reference to a JAXBContext via the jaxbContext-ref attribute, you can create this context object in your configuration file.

<mulexml:jaxb-context name="myJaxb" packageNames="org.mule.jaxb.model"/>

You can always use Spring to create objects as well. To create the JAXBContext using spring you could add the following to your Mule XML configuration too.

<spring:bean name="myJaxb" class="javax.xml.bind.JAXBContext" factory-method="newInstance">
    <!-- colon-separated list of package names where JAXB classes exist -->
    <spring:constructor-arg value="org.mule.jaxb.model"/>

The opposite transformer would allow you to convert from a Person object to XML -

<mulexml:jaxb-object-to-xml-transformer name="PersonToXml" jaxbContext-ref="myJaxb"/>

JAXB Bindings

Mule offers automatic JAXB Bindings so you don’t even need use these transformers for most scenarios.

In this topic: