298.5. 앱 서버 부팅 클래스 경로에 Camel JAR 배치


애플리케이션 서버의 부팅 클래스 경로(예: lib 디렉토리에 있음)에 camel-core,camel-servlet 등 Camel JAR을 배치한 경우(일반적으로 lib 디렉토리에 있음) 서블릿 매핑 목록이 이제 앱 서버에 배포된 여러 Camel 애플리케이션 간에 공유된다는 점에 유의하십시오.

Camel JAR을 애플리케이션 서버의 부트 클래스 경로에 배치하는 것은 일반적으로 모범적이지 않습니다!

따라서 이러한 상황에서는 web.xml 에서 다음과 같이 각 Camel 애플리케이션에 사용자 지정 및 고유한 서블릿 이름을 정의해야 합니다.

<servlet>
  <servlet-name>MyServlet</servlet-name>
  <servlet-class>org.apache.camel.component.servlet.CamelHttpTransportServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
  <servlet-name>MyServlet</servlet-name>
  <url-pattern>/*</url-pattern>
</servlet-mapping>

그리고 Camel 엔드포인트에는 서블릿 이름도 포함됩니다.

<route>
  <from uri="servlet://foo?servletName=MyServlet"/>
  ...
</route>

Camel 2.11 이후 Camel에서 이 중복을 감지하여 애플리케이션을 시작하지 못합니다. 다음과 같이 서블릿 init-parameter ignoreDuplicateServletName을 true로 설정하여 이 중복을 무시하도록 제어할 수 있습니다.

  <servlet>
    <servlet-name>CamelServlet</servlet-name>
    <display-name>Camel Http Transport Servlet</display-name>
    <servlet-class>org.apache.camel.component.servlet.CamelHttpTransportServlet</servlet-class>
    <init-param>
      <param-name>ignoreDuplicateServletName</param-name>
      <param-value>true</param-value>
    </init-param>
  </servlet>

그러나 이러한 중복 중복 문제를 방지하려면 각 Camel 애플리케이션에 고유한 서블릿 이름을 사용하는 것이 좋습니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동