Morning folks,
Under Camel 2.7.2, I'm attempting to specify a custom RestletBinding on a
route, but I don't seem to be having much luck. According to the docs[1], I
should put an option on the URI of "restletBinding=" with a reference to a bean
that is an instance of RestletBinding. When I do this, however, I get an
IllegalArgumentException on startup when the RestletComponent tries to create
the endpoint and set properties, as there's apparently no setter method. Using
the old-style option of "restletBindingRef=" doesn't give the error, but
doesn't invoke the binder either. Hopefully I'm just mis-understanding the
docs, but if anyone can shed some light or suggest something else to try my
config is as follows (it works perfectly without the option on the uri);
<bean id="QueryParamsBinding" class="mystuff.rs.QueryParamsRestletBinding"/>
<route id="RS_BOB">
<from
uri="restlet:http://localhost:9080/mystuff/bob/{id}?restletBinding=QueryParamsBinding"/>
<to uri="log:rs_bob?level=INFO&showHeaders=true" />
<transform>
<simple>Request type : ${header.CamelHttpMethod} and ID :
${header.id}</simple>
</transform>
</route>
The exception thrown is;
Caused by: java.lang.IllegalArgumentException: Could not find a suitable setter
for property: restletBinding as there isn't a setter method with same type:
java.lang.String nor type conversion possible: No type converter available to
convert from type: java.lang.String to the required type:
org.apache.camel.component.restlet.RestletBinding with value QueryParamsBinding
at
org.apache.camel.util.IntrospectionSupport.setProperty(IntrospectionSupport.java:341)
at
org.apache.camel.util.IntrospectionSupport.setProperties(IntrospectionSupport.java:291)
at
org.apache.camel.util.EndpointHelper.setProperties(EndpointHelper.java:225)
at
org.apache.camel.impl.DefaultComponent.setProperties(DefaultComponent.java:200)
at
org.apache.camel.component.restlet.RestletComponent.createEndpoint(RestletComponent.java:58)
at
org.apache.camel.impl.DefaultComponent.createEndpoint(DefaultComponent.java:75)
at
org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:432)
... 38 more
Cheers,
Stu
[1] http://camel.apache.org/restlet.html
**********************************************************************
CONFIDENTIALITY:
Cultura Technologies Ltd is a company registered in England and Wales at
Rivington House, Drumhead Rd, Chorley, Lancs, PR6 7BX with the company number
(1250877). The company VAT number is 732526544. This e-mail and any
attachments are intended for the named recipient(s) only and may be
confidential or legally privileged.
If you are not a named recipient, you should not access,
disclose, copy, forward or distribute this e-mail. Please delete
if obtained in error and e-mail confirmation to:
[email protected]
SECURITY:
Please note that this e-mail has been created in the
knowledge that Internet e-mail is not a 100% secure
communications medium. We advise that you understand
and observe this lack of security when e-mailing us.
VIRUSES:
Although Cultura Technologies Ltd has taken steps to ensure
that this e-mail and any attachments are free from any virus,
it advises that in keeping with good computing practice the
recipient should ensure they are actually virus free.
**********************************************************************