Hi

Yeah sounds good.

Its this guy
org.apache.camel.processor.binding.RestBindingProcessor

which we need to enhance to allow the RestBindingMarshalOnCompletion
part not to do a jaxb in those situations




On Tue, Dec 9, 2014 at 5:13 PM, Alan Camillo <[email protected]> wrote:
> It'll be nice. Imagine could use a template engine to create some returns and 
> mix this with some bindings.
>
> I will look the src and if I could help I can try.
> Thanks!
> Alan
>
>> Em 09/12/2014, às 14:01, Claus Ibsen <[email protected]> escreveu:
>>
>> 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/



-- 
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/

Reply via email to