281.6.5. Webapp 내에서 Restlet 서블릿 사용
Camel 2.8의
로 제공되는서블릿 컨테이너 내에 Restlet 애플리케이션을 구성하고 하위 클래스 SpringServerServlet을 사용하면 Restlet 구성 요소를 삽입하여 Camel 내에서 설정할 수 있는 세 가지 방법이 있습니다.
서블릿 컨테이너 내에서 Restlet 서블릿을 사용하면 URI의 상대 경로(하드 코딩된 절대 URI의 제한 사항 제거) 및 들어오는 요청을 처리하는 호스팅 서블릿 컨테이너(새 포트에서 별도의 서버 프로세스를 생성하는 대신) 경로를 구성할 수 있습니다.
구성하려면 다음을 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>
그리고 이것을 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>
그러면 http://localhost:8080/mywebapp/rs/demo/1234
에서 배포된 경로에 액세스할 수 있습니다.
localhost:8080
은 서블릿 컨테이너의 서버 및 포트입니다
mywebapp
은 배포된 webapp
다음 콘텐츠를 표시합니다.
"Request type : GET and ID : 1234"
Maven pom.xml 파일에서 할 수 있는 restlet에 Spring 확장 기능에 대한 종속성을 추가해야 합니다.
<dependency> <groupId>org.restlet.jee</groupId> <artifactId>org.restlet.ext.spring</artifactId> <version>${restlet-version}</version> </dependency>
또한 restlet maven 리포지토리에 대한 종속성을 추가해야 합니다.
<repository> <id>maven-restlet</id> <name>Public online Restlet repository</name> <url>https://maven.restlet.com</url> </repository>