301.7. 샘플
Camel 2.7 이후부터 Spring 웹 애플리케이션에서 Servlet 을 더 쉽게 사용할 수 있습니다. 자세한 내용은 Servlet Tomcat 예제 를 참조하십시오.
이 샘플에서는 http://localhost:8080/camel/services/hello 에서 HTTP 서비스를 노출하는 경로를 정의합니다.
먼저 일반 웹 컨테이너 또는 OSGi 서비스를 통해 CamelHttpTransportServlet 을 게시해야 합니다. Web.xml
파일을 사용하여 다음과 같이 CamelHttpTransportServlet 을 게시합니다.
그러면 다음과 같이 경로를 정의할 수 있습니다.
camel-servlet 끝점의 상대 경로 지정
게시된 서블릿으로 HTTP 전송을 바인딩하고 있으며 서블릿의 애플리케이션 컨텍스트 경로를 알 수 없으므로 camel-servlet
끝점은 상대 경로를 사용하여 끝점의 URL을 지정합니다. 클라이언트는 서블릿 게시 주소를 통해 camel-servlet
끝점에 액세스할 수 있습니다. ("http://localhost:8080/camel/services") + RELATIVE_PATH("/hello")
301.7.1. Spring 3.x 사용 시 샘플 링크 복사링크가 클립보드에 복사되었습니다!
Servlet Tomcat 예제 를 참조하십시오.
301.7.2. Spring 2.x 사용 시 샘플 링크 복사링크가 클립보드에 복사되었습니다!
Camel/Spring 애플리케이션에서 Servlet 구성 요소를 사용할 때 Servlet 구성 요소가 시작된 후 Spring ApplicationContext를 로드해야 하는 경우가 많습니다. 이 작업은 ContextLoaderListener
대신 Spring의 ContextLoaderServlet
을 사용하여 수행할 수 있습니다. 이 경우 다음과 같이 CamelHttpTransportServlet 을 시작한 후 ContextLoaderServlet
을 시작해야 합니다.
301.7.3. OSGi 사용 시 샘플 링크 복사링크가 클립보드에 복사되었습니다!
Camel 2.6.0 에서는 다음과 같이 블루프린트를 사용하여 CamelHttpTransportServlet 을 OSGi 서비스로 게시할 수 있습니다.
그런 다음 다음과 같이 Camel 경로에서 이 서비스를 사용합니다.
Camel 2.6 이전 버전의 경우 Activator
를 사용하여 CamelHttpTransportServlet 을 OSGi 플랫폼에 게시할 수 있습니다.
301.7.4. Spring-Boot 사용 링크 복사링크가 클립보드에 복사되었습니다!
Camel 2.19.0 이후의 camel-servlet-starter 라이브러리는 /camel/*
컨텍스트 경로 아래의 나머지 모든 끝점을 자동으로 바인딩합니다. 다음 표에는 camel-servlet-starter 라이브러리에서 사용할 수 있는 추가 구성 속성이 요약되어 있습니다. Camel 서블릿의 자동 매핑을 비활성화할 수도 있습니다.
Spring-Boot 속성 | Default | 설명 |
---|---|---|
camel.component.servlet.mapping.enabled |
| 스프링 웹 컨텍스트로 서블릿 구성 요소의 자동 매핑 활성화 |
camel.component.servlet.mapping.context-path |
| 자동 매핑을 위해 서블릿 구성 요소에서 사용하는 컨텍스트 경로 |
camel.component.servlet.mapping.servlet-name |
| Camel 서블릿의 이름 |