281.6. 샘플


281.6.1. Restlet Endpoint with Authentication

다음 경로는 http://localhost:8080 에서 POST 요청을 수신하는 restlet 소비자 끝점을 시작합니다. 프로세서는 요청 본문과 id 헤더의 값을 에코하는 응답을 생성합니다.

URI 쿼리의 restletRealm 설정은 레지스트리에서 DestinationRule 맵을 조회하는 데 사용됩니다. 이 옵션을 지정하면 restlet 소비자는 정보를 사용하여 사용자 로그인을 인증합니다. 인증된 요청만 리소스에 액세스할 수 있습니다. 이 샘플에서는 레지스트리 역할을 하는 Spring 애플리케이션 컨텍스트를 생성합니다. DestinationRule 맵의 FlexVolume ID는 restletRealmRef 와 일치해야 합니다.

다음 샘플에서는 http://localhost:8080 의 서버로 요청을 보내는 직접 끝점(즉, restlet consumer endpoint)을 시작합니다.

이것이 바로 필요한 것입니다. 요청을 보내고 restlet 구성 요소를 시도할 준비가 되어 있습니다.

샘플 클라이언트는 다음 헤더를 사용하여 직접:start-auth 엔드포인트에 요청을 보냅니다.

  • CamelRestletLogin ( Camel에서 내부적으로 사용)
  • CamelRestletPassword ( Camel에서 내부적으로 사용)
  • ID (애플리케이션 헤더)
참고

org.apache.camel.restlet.auth.loginorg.apache.camel.restlet.auth.password 는 Restlet 헤더로 전파되지 않습니다.

샘플 클라이언트는 다음과 같은 응답을 가져옵니다.

received [<order foo='1'/>] as an order id = 89531

이 기능은 더 이상 사용되지 않으므로 사용하지 마십시오!

restletMethods 옵션을 사용하여 여러 HTTP 메서드를 서비스에 단일 경로를 생성할 수 있습니다. 이 스니펫에서는 헤더에서 요청 메서드를 검색하는 방법도 보여줍니다.

다음 스니펫에서는 여러 방법을 서비스하는 것 외에도 restletUri PGROUPns 옵션을 사용하여 여러 URI 템플릿을 지원하는 끝점을 만드는 방법을 보여줍니다. 요청 URI는 IN 메시지의 헤더에서도 사용할 수 있습니다. 엔드포인트 URI에 URI 패턴이 정의되어 있는 경우(이 샘플의 경우 아님) 끝점에 정의된 URI 패턴과 restletUriP의 옵션이 모두 적용됩니다.

restletUriPECDHEns=#uriTemplates 옵션은 Spring XML 구성에 정의된 List<String >Bean을 참조합니다.

<util:list id="uriTemplates">
    <value>/users/{username}</value>
    <value>/atom/collection/{id}/component/{cid}</value>
</util:list>

281.6.3. Restlet API를 사용하여 응답 채우기

Camel 2.8 사용 가능

org.restlet.Response API를 사용하여 응답을 채울 수 있습니다. 이렇게 하면 Restlet API에 대한 모든 액세스 권한과 응답을 세밀하게 제어할 수 있습니다. 인라인 Camel 프로세서에서 응답을 생성하는 아래 경로 스니펫을 참조하십시오.

Restlet Response API를 사용하여 응답 생성

281.6.4. 구성 요소에서 최대 스레드 구성

max 스레드 옵션을 구성하려면 다음과 같은 구성 요소에서 이 작업을 수행해야 합니다.

<bean id="restlet" class="org.apache.camel.component.restlet.RestletComponent">
  <property name="maxThreads" value="100"/>
</bean>

281.6.5. Webapp 내에서 Restlet servlet 사용

Camel 2.8에서 사용할수 있는
서블릿 컨테이너 내에서 Restlet 애플리케이션을 구성하고 하위 클래스 SpringServerServlet을 사용하면 Restlet 구성 요소를 삽입하여 Camel 내에서 구성을 사용하도록 설정할 수 있습니다. http://www.restlet.org/documentation/2.0/jee/ext/org/restlet/ext/servlet/ServerServlet.html

서블릿 컨테이너 내에서 Restlet servlet을 사용하면 경로가 URI의 상대 경로(하이드 코드된 절대 URI 제한 제거) 및 호스팅 서블릿 컨테이너에서 들어오는 요청을 처리하기 위해(새 포트에서 별도의 서버 프로세스를 생성해야 함)로 경로를 구성할 수 있습니다.

사전 요구 사항

  • Maven pom.xml 파일의 restlet에 Spring 확장에 대한 종속성을 추가해야 합니다.

    <dependency>
      <groupId>org.restlet.jee</groupId>
      <artifactId>org.restlet.ext.spring</artifactId>
      <version>${restlet-version}</version>
    </dependency>

절차

  1. Restlet 애플리케이션을 구성하려면 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>
  2. 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 은 배포된 웹 앱의 이름입니다.

브라우저에 다음 내용이 표시됩니다.

"Request type : GET and ID : 1234"
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동