[
https://issues.apache.org/jira/browse/CAMEL-4175?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13061958#comment-13061958
]
Stu Churchill commented on CAMEL-4175:
--------------------------------------
For completeness, the documentation should also note the dependency so that the
SpringServerServlet class can be found;
{code}
<dependency>
<groupId>org.restlet.jee</groupId>
<artifactId>org.restlet.ext.spring</artifactId>
<version>${restlet-version}</version>
</dependency>
{code}
which then requires adding the Restlet Maven repository to your pom.xml (as
noted [here|http://www.restlet.org/downloads/maven]);
{code}
<repository>
<id>maven-restlet</id>
<name>Public online Restlet repository</name>
<url>http://maven.restlet.org</url>
</repository>
{code}
> Enable Restlet servlet to be configured within a webapp
> -------------------------------------------------------
>
> Key: CAMEL-4175
> URL: https://issues.apache.org/jira/browse/CAMEL-4175
> Project: Camel
> Issue Type: Improvement
> Components: camel-restlet
> Affects Versions: 2.7.2
> Reporter: Stu Churchill
> Assignee: Willem Jiang
> Fix For: 2.8.0
>
> Attachments: camel-4175.txt
>
>
> There are three possible ways to configure a Restlet application within a
> servlet container
> (http://www.restlet.org/documentation/2.0/jee/ext/org/restlet/ext/servlet/ServerServlet.html)
> and using the subclassed SpringServerServlet enables configuration within
> Camel by injecting the Restlet Component - however this is currently only
> available internally within the Camel component.
> Use of the Restlet servlet within a servlet container enables routes to be
> configured with relative paths in URIs (removing the restrictions of
> hard-coded absolute URIs) and for the hosting servlet container to handle
> incoming requests (rather than have to spawn a separate server process on a
> new port).
> To configure, add the following to your camel-context.xml;
> <camelContext>
> <route id="RS_RestletDemo">
> <from uri="restlet:/demo/{id}" />
> <transform>
> <simple>Request type : ${header.CamelHttpMethod} and ID :
> ${header.id}</simple>
> </transform>
> </route>
> </camelContext>
> <bean id="RestletComponent" class="org.restlet.Component" />
> <bean id="RestletComponentService"
> class="org.apache.camel.component.restlet.RestletComponent">
> <constructor-arg index="0">
> <ref bean="RestletComponent" />
> </constructor-arg>
> </bean>
> And add this to your web.xml;
> <!-- Restlet Servlet -->
> <servlet>
> <servlet-name>RestletServlet</servlet-name>
> <servlet-class>org.restlet.ext.spring.SpringServerServlet</servlet-class>
> <init-param>
> <param-name>org.restlet.component</param-name>
> <param-value>RestletComponent</param-value>
> </init-param>
> </servlet>
> <servlet-mapping>
> <servlet-name>RestletServlet</servlet-name>
> <url-pattern>/rs/*</url-pattern>
> </servlet-mapping>
> You will then be able to access the deployed route at
> http://localhost:8080/mywebapp/rs/demo/1234 where;
> - localhost:8080 is the server and port of your servlet container
> - mywebapp is the name of your deployed webapp
> Your browser will then show the following content;
> "Request type : GET and ID : 1234"
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira