Apologies, perhaps it wasn't clear - the component is specifically defined for REST:
<bean id="<b>restservlet*" class="org.apache.camel...ServletComponent"> In fact, in my XML config and the DSL, the ServletComponent bean ID is not "servlet". I just changed it in the email to avoid confusion, but I am assuming if no other ServletComponent-s are defined the ID string is irrelevant as long as properly referenced. Claus Ibsen-2 wrote > Just define a new component for rest. > <bean id="restservlet" class="org.apache.camel...ServletComponent"> > > On Mon, Nov 24, 2014 at 10:26 AM, Pavel Lechev < > p.lechev@ > > wrote: >> Hi Claus, >> Thanks for your response. >> Am I to understand that the REST DSL in combination with the `servlet` >> consumer does not allow setting a custom HttpBinding? If so, I believe >> this >> is a huge limitation given that these two are very commonly used >> together. >> It is also not very clear from the documentation that Servlet component >> will >> not allow custom HttpBinding when used in REST DSL. >> Here is my scenario: >> 1. Servlet component explicitly defined in Spring context, where we set >> the >> http binding: >> <bean id="servlet" >> class="org.apache.camel.component.servlet.ServletComponent"> >> <property name="httpBinding"> <bean >> class="my.custom.HttpBinding"/> </property> >> </bean> >> 2. DSL REST config: >> restConfiguration() .component("servlet") <- >> use >> the `servlet` component we defined above >> .bindingMode(RestBindingMode.auto); rest("/my-path") >> .consumes(MediaType.APPLICATION_XML) >> .produces(MediaType.APPLICATION_XML) >> .post().type(MyXMLMappedDataClass.class) .route() >> .routeId("My-Route") .to(....) >> >> .... .... >> Then, on Spring/Camel startup, the following calls are executed >> in this >> order: >> 1) component.createEndpoint(..) in DefaultCamelContext.java:525 results >> in >> endpoint.setBinding(binding) (on ServletComponent.java:96), which >> *correctly* sets my custom binding instance, however the next step >> 2) factory.createConsumer(..) RestEndpoint.java:167 results in >> endpoint.setBinding(new ServletRestHttpBinding()) (on >> ServletComponent.java:208), which overwrites the instance previously set >> I can understand the rationale behind enforcing ServletRestHttpBinding, >> however it will be good if the option to extend this class and configure >> it >> as a custom binding still exists. >> Thanks >> Pav >> >> >> >> -- >> View this message in context: >> http://camel.465427.n5.nabble.com/Impossible-to-configure-HttpBinding-for-ServletComponent-tp5759473p5759528.html >> Sent from the Camel - Users mailing list archive at Nabble.com. > > > > -- > Claus Ibsen > ----------------- > Red Hat, Inc. > Email: > cibsen@ > Twitter: davsclaus > Blog: http://davsclaus.com > Author of Camel in Action: http://www.manning.com/ibsen > hawtio: http://hawt.io/ > fabric8: http://fabric8.io/ -- View this message in context: http://camel.465427.n5.nabble.com/Impossible-to-configure-HttpBinding-for-ServletComponent-tp5759473p5759530.html Sent from the Camel - Users mailing list archive at Nabble.com.