Hi Ah yeah as it marshalled using JAXB for IN it defaults to do the reverse on out. But as you have auto mode, we could likely detect that if the message body does not have @Jaxb annotations it should use it as-is. Also we could detect if the body is a String and use that as-is, as its assume xml content to be returned as-is.
On Tue, Dec 9, 2014 at 4:27 PM, Alan Camillo <[email protected]> wrote: > Hello! > > I've had some problems trying the new rest dsl from camel and I'd like to > know if there is a way to do this: > > restConfiguration() > .component("netty-http") > .host("0.0.0.0") > .bindingMode(*RestBindingMode.auto*) > .port("{{server.port}}"); > > rest("/mail") > .post("/send") > .consumes("text/xml") > .produces("text/xml") > .type(A.class) > .to("direct:msg"); > > Until here I received a A.class from the clients with no problem. > But from "direct:msg" I'd like to return a (xml) String to the client. Like > this: > > from("direct:msg").routeId("direct:msg") > .log("message received: ${body}") > .setBody(new ConstantExpression("<?xml version=\"1.0\" > encoding=\"UTF-8\"?><ok>ok</ok>")); > > And than, error: > java.io.IOException: javax.xml.bind.MarshalException > - with linked exception: > [com.sun.istack.SAXException2: unable to marshal type "java.lang.String" as > an element because it is missing an @XmlRootElement annotation] > > Look obvious, but I'd like to know if there a way to do this. > Thanks! > Alan Camillo -- Claus Ibsen ----------------- Red Hat, Inc. Email: [email protected] Twitter: davsclaus Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen hawtio: http://hawt.io/ fabric8: http://fabric8.io/
