Search code examples
springspring-integrationspring-oxm

How to integrate the Jaxb2Marshaller in the Spring integration route?


  1. Created the Jaxb2Marshaller object.
  2. Need to convert a java POJO to XML (Marshalling).

Need help in integrating Jaxb2Marshaller in the Integration Route.

Code flow:-

@Bean
    public IntegrationFlow flow() throws JAXBException {
        return from(...).
                .enrichHeaders(...)
                .handle(...)
                .transform(processor()::generateXml)
                .channel(...)
                               .get();
    }

How can I add Jaxb2Marshaller in transform() step?


Solution

  • There is an out-of-the-box transformer to use:

    .transform(new MarshallingTransformer(jaxbMarshaller()))
    

    https://docs.spring.io/spring-integration/docs/current/reference/html/xml.html#xml-marshalling-transformer

    How to create a Jaxb2Marshaller you can consult Spring Framework docs:

    https://docs.spring.io/spring/docs/current/spring-framework-reference/data-access.html#oxm-jaxb2