18장. Cryostat-RS 끝점 구성


초록

이 장에서는 블루프린트 XML 및 Spring XML에서 Cryostat-RS 서버 끝점을 인스턴스화하고 구성하는 방법과 XML에서 Cryostat-RS 클라이언트 끝점(클라이언트 프록시 빈)을 인스턴스화하고 구성하는 방법을 설명합니다.

18.1. Cryostat-RS 서버 끝점 구성

18.1.1. Cryostat-RS 서버 끝점 정의

18.1.1.1. 기본 서버 끝점 정의

XML에서 Cryostat-RS 서버 끝점을 정의하려면 최소한 다음을 지정해야 합니다.

  1. XML로 엔드포인트를 정의하는 데 사용되는 jaxrs:server 요소입니다. jaxrs: namespace 접두사는 블루프린트 및 Spring의 다른 네임스페이스에 각각 매핑됩니다.
  2. jaxrs:server 요소의 address 특성을 사용하여 Cryostat-RS 서비스의 기본 URL입니다. 주소 URL을 지정하는 방법에는 엔드포인트 배포 방식에 영향을 미치는 두 가지 방법이 있습니다.

    • 상대 URL-예: /customers. 이 경우 끝점은 기본 HTTP 컨테이너에 배포되고 엔드포인트의 기본 URL은 CXF 서블릿 기본 URL과 지정된 상대 URL을 결합하여 암시적으로 가져옵니다.

      예를 들어, Fuse 컨테이너에 Cryostat-RS 끝점을 배포하는 경우 지정된 /customers URL이 URL인 http://Hostname:8181/cxf/customers 로 확인됩니다(컨테이너가 기본 8181 포트를 사용 중이라고 가정).

    • 절대 URL로, 예를 들면 http://0.0.0.0:8200/cxf/customers 입니다. 이 경우 Cryostat-RS 엔드포인트(아직 열려 있지 않은 경우)에 대해 새 HTTP 리스너 포트가 열립니다. 예를 들어 Fuse의 컨텍스트에서 새 Cryostat 컨테이너가 암시적으로 생성되어 Cryostat-RS 엔드포인트를 호스팅할 수 있습니다. 특수 IP 주소 0.0.0.0 은 현재 호스트에 할당된 호스트 이름 중 하나와 일치하는 와일드카드 역할을 합니다(multi-homed 호스트 시스템에서 유용할 수 있음).
  3. Cryostat-RS 서비스의 구현을 제공하는 하나 이상의 Cryostat-RS 루트 리소스 클래스입니다. 리소스 클래스를 지정하는 가장 간단한 방법은 jaxrs:serviceBeans 요소 내에 나열하는 것입니다.

18.1.1.2. 블루프린트 예

다음 블루프린트 XML 예제에서는 상대 주소, /customers (기본 HTTP 컨테이너에 배포됨)를 지정하고 service.CustomerService 리소스 클래스에 의해 구현되는 Cryostat-RS 엔드포인트를 정의하는 방법을 보여줍니다.

<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:jaxrs="http://cxf.apache.org/blueprint/jaxrs"
    xmlns:cxf="http://cxf.apache.org/blueprint/core"
    xsi:schemaLocation="
http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
http://cxf.apache.org/blueprint/jaxrs http://cxf.apache.org/schemas/blueprint/jaxrs.xsd
http://cxf.apache.org/blueprint/core http://cxf.apache.org/schemas/blueprint/core.xsd
">

    <cxf:bus>
        <cxf:features>
            <cxf:logging/>
        </cxf:features>
    </cxf:bus>

     <jaxrs:server id="customerService" address="/customers">
        <jaxrs:serviceBeans>
           <ref component-id="serviceBean" />
        </jaxrs:serviceBeans>
     </jaxrs:server>

     <bean id="serviceBean" class="service.CustomerService"/>
</blueprint>

18.1.1.3. 블루프린트 XML 네임스페이스

블루프린트에 Cryostat-RS 끝점을 정의하려면 일반적으로 다음 XML 네임스페이스가 필요합니다.

접두사네임스페이스

(기본값)

http://www.osgi.org/xmlns/blueprint/v1.0.0

CXF

http://cxf.apache.org/blueprint/core

jaxrs

http://cxf.apache.org/blueprint/jaxrs

18.1.1.4. Spring 예

다음 Spring XML 예제에서는 상대 주소, /customers (기본 HTTP 컨테이너에 배포됨)를 지정하고 service.CustomerService 리소스 클래스에 의해 구현되는 Cryostat-RS 엔드포인트를 정의하는 방법을 보여줍니다.

<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:jaxrs="http://cxf.apache.org/jaxrs"
      xsi:schemaLocation="
         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
         http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd">

     <jaxrs:server id="customerService" address="/customers">
        <jaxrs:serviceBeans>
           <ref bean="serviceBean"/>
        </jaxrs:serviceBeans>
     </jaxrs:server>

     <bean id="serviceBean" class="service.CustomerService"/>
</beans>

18.1.1.5. Spring XML 네임스페이스

Spring에서 Cryostat-RS 끝점을 정의하려면 일반적으로 다음 XML 네임스페이스가 필요합니다.

접두사네임스페이스

(기본값)

http://www.springframework.org/schema/beans

CXF

http://cxf.apache.org/core

jaxrs

http://cxf.apache.org/jaxrs

18.1.1.6. Spring XML 자동 검색

(spring only) 대신 Cryostat-RS 루트 리소스 클래스를 명시적으로 지정하면 Spring XML을 사용하면 자동 검색을 구성할 수 있으므로 특정 Java 패키지가 리소스 클래스( @Path에서 주석 처리됨)를 검색하고 검색된 모든 리소스 클래스가 엔드포인트에 자동으로 연결됩니다. 이 경우 jaxrs:server 요소에서 address 속성 및 basePackages 속성만 지정해야 합니다.

예를 들어 a.b.c Java 패키지 아래에 있는 모든 Cryostat-RS 리소스 클래스를 사용하는 Cryostat-RS 끝점을 정의하려면 다음과 같이 Spring XML에서 끝점을 정의할 수 있습니다.

<jaxrs:server address="/customers" basePackages="a.b.c"/>

자동 검색 메커니즘은 지정된 Java 패키지에서 찾을 수 있는 모든 Cryostat-RS 공급자 클래스를 검색하고 엔드포인트에 설치합니다.

18.1.1.7. Spring XML의 라이프사이클 관리

(spring only) Spring XML을 사용하면 8080 요소에서 scope 특성을 설정하여 의 라이프사이클을 제어할 수 있습니다. 다음 범위 값은 Spring에서 지원합니다.

싱글톤
(기본값) 어디에서나 사용되며 Spring 컨테이너의 전체 수명 동안 지속되는 단일 8080 인스턴스를 만듭니다.
프로토타입
빈이 다른 빈에 삽입될 때마다 또는 8080 레지스트리에서 getBean() 을 호출하여 빈을 가져올 때마다 새 8080 인스턴스를 만듭니다.
요청
(웹 인식 컨테이너에서만 사용 가능) 8080에서 호출된 모든 요청에 대해 새 8080 인스턴스를 만듭니다.
세션
(웹 인식 컨테이너에서만 사용 가능) 단일 HTTP 세션의 수명 동안 새 빈을 만듭니다.
globalSession
(웹 인식 컨테이너에서만 사용 가능) 포틀릿 간에 공유되는 단일 HTTP 세션의 수명 동안 새 빈을 만듭니다.

Spring 범위에 대한 자세한 내용은 Cryostat 범위에 대한 Spring 프레임워크 설명서 를 참조하십시오.

jaxrs:serviceBeans 요소를 통해 Cryostat-RS 리소스 빈을 지정하는 경우 Spring 범위가 제대로 작동하지 않습니다. 이 경우 리소스 빈에 scope 속성을 지정하면 scope 속성이 효과적으로 무시됩니다.

Cryostat-RS 서버 엔드포인트 내에서 8080 범위가 제대로 작동하도록 하려면 서비스 팩토리에서 제공하는 간접 수준이 필요합니다. Quarkus 범위를 구성하는 가장 간단한 방법은 다음과 같이 jaxrs:server 요소에서 8080 Names 속성을 사용하여 리소스 빈 을 지정하는 것입니다.

<beans ... >
  <jaxrs:server id="customerService" address="/service1"
    beanNames="customerBean1 customerBean2"/>

  <bean id="customerBean1" class="demo.jaxrs.server.CustomerRootResource1" scope="prototype"/>
  <bean id="customerBean2" class="demo.jaxrs.server.CustomerRootResource2"  scope="prototype"/>
</beans>

위 예제에서 두 개의 리소스 빈, customerBean1customerBean2 를 구성합니다. Cryo statNames 속성은 공백으로 구분된 리소스 8080 ID 목록으로 지정됩니다.

궁극적인 유연성 수준을 위해 jaxrs:serviceFactories 요소를 사용하여 Cryostat-RS 서버 엔드포인트를 구성할 때 서비스 팩토리 오브젝트를 명시적으로 정의할 수 있는 옵션이 있습니다. 이 보다 자세한 접근 방식은 기본 서비스 팩토리 구현을 사용자 지정 구현으로 대체할 수 있다는 장점이 있으므로, Cryostat 라이프사이클을 완벽하게 제어할 수 있습니다. 다음 예제에서는 다음 방법을 사용하여 두 개의 리소스 빈, customerBean1customerBean2 를 구성하는 방법을 보여줍니다.

<beans ... >
  <jaxrs:server id="customerService" address="/service1">
    <jaxrs:serviceFactories>
      <ref bean="sfactory1" />
      <ref bean="sfactory2" />
    </jaxrs:serviceFactories>
  </jaxrs:server>

  <bean id="sfactory1" class="org.apache.cxf.jaxrs.spring.SpringResourceFactory">
     <property name="beanId" value="customerBean1"/>
  </bean>
  <bean id="sfactory2" class="org.apache.cxf.jaxrs.spring.SpringResourceFactory">
     <property name="beanId" value="customerBean2"/>
  </bean>

  <bean id="customerBean1" class="demo.jaxrs.server.CustomerRootResource1" scope="prototype"/>
  <bean id="customerBean2" class="demo.jaxrs.server.CustomerRootResource2"  scope="prototype"/>
</beans>
참고

단일톤이 아닌 라이프사이클을 지정하는 경우 org.apache.cxf.service.Invoker Ignition을 구현하고 등록하는 것이 좋습니다. jaxrs:server/jaxrs:invoker 요소에서 인스턴스를 확인하여 등록할 수 있습니다.

18.1.1.8. WADL 문서 첨부

선택적으로 jaxrs:server 요소에서 docLocation 특성을 사용하여 WADL 문서를 Cryostat-RS 서버 끝점과 연결할 수 있습니다. 예를 들면 다음과 같습니다.

<jaxrs:server address="/rest" docLocation="wadl/bookStore.wadl">
   <jaxrs:serviceBeans>
      <bean class="org.bar.generated.BookStore"/>
   </jaxrs:serviceBeans>
</jaxrs:server>

18.1.1.9. 스키마 검증

Cryostat-B 형식의 메시지 콘텐츠를 설명하기 위해 일부 외부 XML 스키마가 있는 경우 jaxrs:schemaLocations 요소를 통해 이러한 외부 스키마를 Cryostat-RS 서버 끝점과 연결할 수 있습니다.

예를 들어 WADL 문서와 서버 끝점을 연결하고 들어오는 메시지에 스키마 유효성 검사를 활성화하려는 경우 다음과 같이 관련 XML 스키마 파일을 지정할 수 있습니다.

<jaxrs:server address="/rest"
              docLocation="wadl/bookStore.wadl">
   <jaxrs:serviceBeans>
     <bean class="org.bar.generated.BookStore"/>
   </jaxrs:serviceBeans>
   <jaxrs:schemaLocations>
     <jaxrs:schemaLocation>classpath:/schemas/a.xsd</jaxrs:schemaLocation>
     <jaxrs:schemaLocation>classpath:/schemas/b.xsd</jaxrs:schemaLocation>
   </jaxrs:schemaLocations>
</jaxrs:server>

또는 지정된 디렉터리에 모든 스키마 파일 *.xsd 를 포함하려는 경우 다음과 같이 디렉터리 이름을 지정할 수 있습니다.

<jaxrs:server address="/rest"
              docLocation="wadl/bookStore.wadl">
   <jaxrs:serviceBeans>
     <bean class="org.bar.generated.BookStore"/>
   </jaxrs:serviceBeans>
   <jaxrs:schemaLocations>
     <jaxrs:schemaLocation>classpath:/schemas/</jaxrs:schemaLocation>
   </jaxrs:schemaLocations>
</jaxrs:server>

이러한 방식으로 스키마를 지정하는 것은 일반적으로 Cryostat-B 스키마에 액세스해야 하는 모든 종류의 기능에 유용합니다.

18.1.1.10. 데이터 바인딩 지정

jaxrs:dataBinding 요소를 사용하여 요청 및 응답 메시지에서 메시지 본문을 인코딩하는 데이터 바인딩을 지정할 수 있습니다. 예를 들어 Cryostat-B 데이터 바인딩을 지정하려면 다음과 같이 Cryostat-RS 끝점을 구성할 수 있습니다.

<jaxrs:server id="jaxbbook" address="/jaxb">
  <jaxrs:serviceBeans>
    <ref bean="serviceBean" />
  </jaxrs:serviceBeans>
  <jaxrs:dataBinding>
    <bean class="org.apache.cxf.jaxb.JAXBDataBinding"/>
  </jaxrs:dataBinding>
</jaxrs:server>>

또는 Aegis 데이터 바인딩을 지정하려면 다음과 같이 Cryostat-RS 끝점을 구성할 수 있습니다.

<jaxrs:server id="aegisbook" address="/aegis">
  <jaxrs:serviceBeans>
    <ref bean="serviceBean" />
  </jaxrs:serviceBeans>
  <jaxrs:dataBinding>
    <bean class="org.apache.cxf.aegis.databinding.AegisDatabinding">
      <property name="aegisContext">
        <bean class="org.apache.cxf.aegis.AegisContext">
          <property name="writeXsiTypes" value="true"/>
        </bean>
      </property>
    </bean>
  </jaxrs:dataBinding>
</jaxrs:server>

18.1.1.11. JMS 전송 사용

HTTP 대신 JMS 메시징 라이브러리를 전송 프로토콜로 사용하도록 Cryostat-RS를 구성할 수 있습니다. JMS 자체는 전송 프로토콜이 아니므로 실제 메시징 프로토콜은 구성하는 특정 JMS 구현에 따라 다릅니다.

예를 들어 다음 Spring XML 예제에서는 JMS 전송 프로토콜을 사용하도록 Cryostat-RS 서버 끝점을 구성하는 방법을 보여줍니다.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:jms="http://cxf.apache.org/transports/jms"
       xmlns:jaxrs="http://cxf.apache.org/jaxrs"
       xsi:schemaLocation="
http://cxf.apache.org/transports/jms http://cxf.apache.org/schemas/configuration/jms.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd">

    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
    <bean id="ConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
        <property name="brokerURL" value="tcp://localhost:${testutil.ports.EmbeddedJMSBrokerLauncher}" />
    </bean>

    <jaxrs:server xmlns:s="http://books.com"
    	serviceName="s:BookService"
    	transportId= "http://cxf.apache.org/transports/jms"
    	address="jms:queue:test.jmstransport.text?replyToName=test.jmstransport.response">
        <jaxrs:serviceBeans>
            <bean class="org.apache.cxf.systest.jaxrs.JMSBookStore"/>
        </jaxrs:serviceBeans>
    </jaxrs:server>

</beans>

이전 예에 대해서는 다음 사항에 유의하십시오.

  • JMS 구현- JMS 구현은 Apache ActiveMQ 연결 팩토리 오브젝트를 인스턴스화하는 ConnectionFactory 8080에서 제공합니다. 연결 팩토리를 인스턴스화한 후 기본 JMS 구현 계층으로 자동으로 설치됩니다.
  • JMS 연속 또는 대상 오브젝트-Apache CXF는 JMS 소비자를 나타내는 JMS conduit 오브젝트 또는 JMS 대상 오브젝트( JMS 공급자를 표현하기 위해)를 암시적으로 인스턴스화합니다. 이 오브젝트는 setttings xmlns:s="http://books.com" (네임스 접두사 정의) 및 serviceName="s:keygenService"(QName 정의)를 통해 정의된 QName으로 고유하게 식별해야 합니다.
  • Transport ID-to select the JMS transport, the transportId attribute must be set to http://cxf.apache.org/transports/jms.
  • JMS 주소- jaxrs:server/@address 속성은 표준화된 구문을 사용하여 보낼 JMS 큐 또는 JMS 주제를 지정합니다. 이 구문에 대한 자세한 내용은 https://tools.ietf.org/id/draft-merrick-jms-uri-06.txt 을 참조하십시오.

18.1.1.12. 확장 매핑 및 언어 매핑

Cryostat-RS 서버 끝점은 파일 접미사(URL에 표시되는)를 MIME 콘텐츠 유형 헤더에 자동으로 매핑하고 언어 접미사를 언어 유형 헤더에 매핑하도록 구성할 수 있습니다. 예를 들어 다음 양식의 HTTP 요청을 고려하십시오.

GET /resource.xml

다음과 같이 .xml 접미사를 자동으로 매핑하도록 Cryostat-RS 서버 끝점을 구성할 수 있습니다.

<jaxrs:server id="customerService" address="/">
  <jaxrs:serviceBeans>
    <bean class="org.apache.cxf.jaxrs.systests.CustomerService" />
  </jaxrs:serviceBeans>
  <jaxrs:extensionMappings>
    <entry key="json" value="application/json"/>
    <entry key="xml" value="application/xml"/>
  </jaxrs:extensionMappings>
</jaxrs:server>

이전 서버 끝점에서 HTTP 요청을 수신하면 type, application/xml 의 새 콘텐츠 유형 헤더를 자동으로 생성하고 리소스 URL에서 .xml 접미사를 제거합니다.

언어 매핑의 경우 다음 양식의 HTTP 요청을 고려하십시오.

GET /resource.en

다음과 같이 .en 접미사를 자동으로 매핑하도록 Cryostat-RS 서버 끝점을 구성할 수 있습니다.

<jaxrs:server id="customerService" address="/">
  <jaxrs:serviceBeans>
    <bean class="org.apache.cxf.jaxrs.systests.CustomerService" />
  </jaxrs:serviceBeans>
  <jaxrs:languageMappings>
     <entry key="en" value="en-gb"/>
  </jaxrs:languageMappings>
</jaxrs:server>

이전 서버 끝점에서 HTTP 요청을 수신하면 en-gb.en 접미사를 사용하여 새 수락 언어 헤더를 자동으로 생성하고 리소스 URL에서 .en 접미사를 제거합니다.

18.1.2. jaxrs:server 속성

18.1.2.1. 속성

표 18.1. “Cryostat-RS Server 끝점 속성” jaxrs:server 요소에서 사용할 수 있는 특성에 대해 설명합니다.

표 18.1. Cryostat-RS Server 끝점 속성
속성설명

id

다른 구성 요소가 끝점을 참조하는 데 사용할 수 있는 고유 식별자를 지정합니다.

address

HTTP 끝점의 주소를 지정합니다. 이 값은 서비스 계약에 지정된 값을 재정의합니다.

basePackages

(아동만 해당) 검색되는 Java 패키지 목록을 쉼표로 구분된 Java 패키지 목록을 지정하여 자동 검색을 활성화합니다. 이 목록은 Cryostat-RS 루트 리소스 클래스 및/또는 Cryostat-RS 공급자 클래스를 검색할 수 있습니다.

beanNames

Cryostat-RS 루트 리소스 빈의 빈으로 구분된 빈 목록을 지정합니다. Spring XML 컨텍스트에서 루트 리소스 빈의 라이프사이클을 정의할 수 있습니다. 루트 리소스 요소의 scope 속성을 설정합니다.

bindingId

서비스에서 사용하는 메시지 바인딩의 ID를 지정합니다. 유효한 바인딩 ID 목록은 23장. Apache CXF 바인딩 ID 에 제공됩니다.

버스

서비스 엔드포인트를 관리하는 데 사용되는 버스를 구성하는 Spring 8080의 ID를 지정합니다. 이는 공통 기능 세트를 사용하도록 여러 끝점을 구성할 때 유용합니다.

DocLocation

외부 WADL 문서의 위치를 지정합니다.

modelRef

모델 스키마를 클래스 경로 리소스로 지정합니다(예: 양식 classpath:/path/to/model.xml의 URL). Cryostat-RS 모델 스키마를 정의하는 방법에 대한 자세한 내용은 18.3절. “모델 스키마를 사용하여 REST 서비스 정의” 을 참조하십시오.

publish

서비스를 자동으로 게시해야 하는지 여부를 지정합니다. false 로 설정하면 개발자가 엔드포인트를 명시적으로 게시해야 합니다.

publishedEndpointUrl

자동 생성 WADL 인터페이스의 wadl:resources/@base 속성에 삽입되는 URL 기본 주소를 지정합니다.

serviceAnnotation

(spring only) Spring 에서 자동 검색에 대한 서비스 주석 클래스 이름을 지정합니다. basePackages 속성과 함께 사용할 때 이 옵션은 이 주석 유형으로 주석이 달린 클래스 포함하도록 자동 검색 클래스 컬렉션을 제한합니다. guess! 이 문제가 맞습니까?

serviceClass

Cryostat-RS 루트 리소스 클래스의 이름을 지정합니다 (이는 Cryostat-RS 서비스를 구현합니다). 이 경우 클래스는 블루프린트 또는 Spring이 아닌 Apache CXF에 의해 인스턴스화됩니다. 블루프린트 또는 Spring에서 클래스를 인스턴스화하려면 jaxrs:serviceBeans 하위 요소를 대신 사용합니다.

serviceName

JMS 전송이 사용되는 특수 경우, QName( format ns:name)에 대한 QName 서비스를 지정합니다. 자세한 내용은 “JMS 전송 사용”의 내용을 참조하십시오.

staticSubresourceResolution

true 인 경우 정적 하위 리소스의 동적 해결을 비활성화합니다. 기본값은 false 입니다.

transportId

비표준 전송 계층(HTTP 대신)을 선택합니다. 특히 이 속성을 http://cxf.apache.org/transports/jms 로 설정하여 JMS 전송을 선택할 수 있습니다. 자세한 내용은 “JMS 전송 사용”의 내용을 참조하십시오.

abstract

(spring만 해당) 빈이 추상 빈인지 여부를 지정합니다. 추상 빈은 구체적인 8080 정의에 대해 상위 역할을 하며 인스턴스화되지 않습니다. 기본값은 false입니다. true 로 설정하면 Cryostat 팩토리에서 8080을 인스턴스화하지 않도록 지시합니다.

Dependent-on

(spring only) 끝점이 인스턴스화되기 전에 끝점이 인스턴스화되는 경우 종속되는 빈 목록을 지정합니다.

18.1.3. jaxrs:server child Cryostat

18.1.3.1. 하위 요소

표 18.2. “Cryostat-RS Server Endpoint Cryostat” jaxrs:server 요소의 하위 요소를 설명합니다.

표 18.2. Cryostat-RS Server Endpoint Cryostat
element설명

jaxrs:executor

서비스에 사용되는 Java Executor (스레드 풀 구현)를 지정합니다. 포함된 빈 정의를 사용하여 지정됩니다.

jaxrs:features

Apache CXF의 고급 기능을 구성하는 빈 목록을 지정합니다. Quarkus 참조 목록 또는 포함된 빈 목록을 제공할 수 있습니다.

jaxrs:binding

사용되지 않음.

jaxrs:dataBinding

끝점에서 사용하는 데이터 바인딩을 구현하는 클래스를 지정합니다. 포함된 빈 정의를 사용하여 지정됩니다. 자세한 내용은 “데이터 바인딩 지정” 에서 참조하십시오.

jaxrs:inInterceptors

인바운드 요청을 처리하는 인터셉터 목록을 지정합니다. 자세한 내용은 VII 부. Apache CXF Interceptors 개발 에서 참조하십시오.

jaxrs:inFaultInterceptors

인바운드 오류 메시지를 처리하는 인터셉터 목록을 지정합니다. 자세한 내용은 VII 부. Apache CXF Interceptors 개발 에서 참조하십시오.

jaxrs:outInterceptors

아웃바운드 응답을 처리하는 인터셉터 목록을 지정합니다. 자세한 내용은 VII 부. Apache CXF Interceptors 개발 에서 참조하십시오.

jaxrs:outFaultInterceptors

아웃바운드 오류 메시지를 처리하는 인터셉터 목록을 지정합니다. 자세한 내용은 VII 부. Apache CXF Interceptors 개발 에서 참조하십시오.

jaxrs:invoker

서비스에서 사용하는 org.apache.cxf.service.Invoker 인터페이스의 구현을 지정합니다. [a]

jaxrs:serviceFactories

이 엔드포인트와 연결된 Cryostat-RS 루트 리소스의 라이프사이클에 대한 최대 제어 수준을 제공합니다. 이 요소의 하위 항목( org.apache.cxf.jaxrs.lifecycle.ResourceProvider 유형의 인스턴스여야 함)은 Cryostat-RS 루트 리소스 인스턴스를 만드는 데 사용됩니다.

jaxrs:properties

끝점에 전달되는 속성의 Spring map을 지정합니다. 이러한 속성은 MTOM 지원 활성화와 같은 기능을 제어하는 데 사용할 수 있습니다.

jaxrs:serviceBeans

이 요소의 하위 항목은 요소의 인스턴스 또는 (참조 요소) Cryostat-RS 루트 리소스에 대한 참조입니다. 이 경우 Quarkus 요소에 있는 경우 scope 속성 (Spring only) 이 무시됩니다.

jaxrs:modelBeans

리소스 모델의 기본 요소인 하나 이상의 org.apache.cxf.jaxrs.model.UserResource 빈에 대한 참조 목록으로 구성됩니다(Jax rs:resource 요소에 해당). 자세한 내용은 18.3절. “모델 스키마를 사용하여 REST 서비스 정의”의 내용을 참조하십시오.

jaxrs:model

이 끝점에서 직접 리소스 모델을 정의합니다(즉, 이 jaxrs:model 요소는 하나 이상의 jaxrs:resource 요소를 포함할 수 있음). 자세한 내용은 18.3절. “모델 스키마를 사용하여 REST 서비스 정의”의 내용을 참조하십시오.

jaxrs:providers

이 엔드포인트에 하나 이상의 사용자 지정 Cryostat-RS 공급자를 등록할 수 있습니다. 이 요소의 하위 항목은 요소의 인스턴스 또는 (ref 요소) Cryostat-RS 공급자에 대한 참조입니다.

jaxrs:extensionMappings

REST 호출의 URL이 파일 확장자로 종료되면 이 요소를 사용하여 자동으로 특정 콘텐츠 유형과 연결할 수 있습니다. 예를 들어 .xml 파일 확장자는 application/xml 콘텐츠 유형과 연결할 수 있습니다. 자세한 내용은 “확장 매핑 및 언어 매핑”의 내용을 참조하십시오.

jaxrs:languageMappings

REST 호출의 URL이 언어 접미사로 종료되면 이 요소를 사용하여 특정 언어에 매핑할 수 있습니다. 예를 들어 .en 언어 접미사는 en-GB 언어와 연결할 수 있습니다. 자세한 내용은 “확장 매핑 및 언어 매핑”의 내용을 참조하십시오.

jaxrs:schemaLocations

XML 메시지 내용을 검증하는 데 사용되는 하나 이상의 XML 스키마를 지정합니다. 이 요소는 각각 XML 스키마 파일의 위치(일반적으로 클래스 경로 URL)를 지정하는 하나 이상의 jaxrs:schemaLocation 요소를 포함할 수 있습니다. 자세한 내용은 “스키마 검증”의 내용을 참조하십시오.

jaxrs:resourceComparator

들어오는 URL 경로를 특정 리소스 클래스 또는 메서드에 일치시키는 데 사용되는 알고리즘을 구현하는 사용자 정의 리소스 비교기를 등록할 수 있습니다.

jaxrs:resourceClasses

(blueprint만 해당) 클래스 이름에서 여러 리소스를 생성하려는 경우 jaxrs:server/@serviceClass 속성 대신 사용할 수 있습니다. jaxrs:resourceClasses 의 하위 항목은 name 속성이 리소스 클래스의 이름으로 설정된 class 요소여야 합니다. 이 경우 클래스는 블루프린트 또는 Spring이 아닌 Apache CXF에 의해 인스턴스화됩니다.

[a] Invoker 구현에서는 서비스 호출 방법을 제어합니다. 예를 들어 서비스 구현의 새 인스턴스에서 각 요청을 처리할지 또는 호출 간에 state가 보존되는지 여부를 제어합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.