11.8. Serializing Messages
- To split and route fragments of a message, use the basic frag:serialize and *:router components (jms:router, file:router and so on) from the Routing Cartridge. The frag:serialize component has its own configuration in the http://www.milyn.org/xsd/smooks/fragment-routing-1.2.xsd namespace.
- Use the example below for serializing the contents of a SOAP message body and storing it in the bean context under the beanId of soapBody:
<?xml version="1.0"?> <smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd" xmlns:frag="http://www.milyn.org/xsd/smooks/fragment-routing-1.2.xsd"> <frag:serialize fragment="Envelope/Body" bindTo="soapBody" childContentOnly="true"/> </smooks-resource-list>
- Use this code to execute it:
Smooks smooks = new Smooks(configStream); JavaResult javaResult = new JavaResult(); smooks.filterSource(new StreamSource(soapMessageStream), javaResult); String bodyContent = javaResult.getBean("soapBody").toString().trim();
- To do this programatically, use this code:
Smooks smooks = new Smooks(); smooks.addVisitor(new FragmentSerializer().setBindTo("soapBody"), "Envelope/Body"); JavaResult javaResult = new JavaResult(); smooks.filterSource(new StreamSource(soapMessageStream), javaResult); String bodyContent = javaResult.getBean("soapBody").toString().trim();