Restlet has been edited by William Tam (Feb 03, 2009). Content:Restlet ComponentThe Restlet component provides Restlet URI formatrestlet:restletUrl[?options] Format of restletUrl: protocol://hostname[:port][/resourcePattern]
Message Headers
Message BodyCamel will store the Restlet response from the external server on the OUT body. All headers from the IN message will be copied to the OUT message so headers is preserved during routing. SamplesRestlet Endpoint with AuthenticationThis sample starts a Restlet consumer endpoint that listens POST requests on http://localhost:8080 from("restlet:http://localhost:9080/securedOrders?restletMethod=post&restletRealmRef=realm").process(new Processor() { public void process(Exchange exchange) throws Exception { exchange.getOut().setBody( "received [" + exchange.getIn().getBody() + "] as an order id = " + exchange.getIn().getHeader("id")); } }); The restletRealmRef in URI query is an option to lookup a Realm Map in the registry. If this option is specified, the Restlet consumer will use the information to authenticate user logins. Only authenticated requests can access the resources. In this sample, we create a Spring application context that serves as a registry. The bean ID of the Realm Map should match the restletRealmRef. An error occurred: http://svn.apache.org/repos/asf/camel/trunk/componnetscamel-restlet/src/test/resources/org/apache/camel/component/restlet/camel-context.xml. The system administrator has been notified.The sample starts a direct endpoint that sends requests to the server on http://localhost:8080 // Note: restletMethod and restletRealmRef are stripped // from the query before a request is sent as they are // only processed by Camel. from("direct:start-auth").to("restlet:http://localhost:9080/securedOrders?restletMethod=post"); That is all we need. We are ready to send a request and try out the Restlet component. The sample client sends a request to "direct:start-auth" endpoint with the following headers. Notice that org.apache.camel.restlet.auth.login and org.apache.camel.restlet.auth.password will not be propagated as Restlet header.
final String id = "89531"; Map<String, Object> headers = new HashMap<String, Object>(); headers.put(RestletConstants.LOGIN, "admin"); headers.put(RestletConstants.PASSWORD, "foo"); headers.put("id", id); String response = (String) template.requestBodyAndHeaders("direct:start-auth", "<order foo='1'/>", headers); The sample client will get a response: received [<order foo='1'/>] as an order id = 89531 |
Unsubscribe or edit your notifications preferences