14.2. JMS 구성 빈 사용
14.2.1. 개요
JMS 구성을 단순화하고 더 강력하게 만들기 위해 Apache CXF는 단일 JMS 구성 빈을 사용하여 JMS 끝점을 구성합니다. 빈은 org.apache.cxf.transport.jms.JMSConfiguration
클래스에서 구현됩니다. 끝점을 직접 구성하거나 JMS 구성 및 대상을 구성하는 데 사용할 수 있습니다.
14.2.2. 구성 네임스페이스
JMS 구성 빈에서는 Spring p-namespace 를 사용하여 구성을 최대한 간단하게 만듭니다. 이 네임스페이스를 사용하려면 예 14.1. “Spring p-namespace 선언” 과 같이 구성의 루트 요소에 선언해야 합니다.
예 14.1. Spring p-namespace 선언
<beans ... xmlns:p="http://www.springframework.org/schema/p" ... > ... </beans>
14.2.3. 설정 지정
org.apache.cxf.transport.jms.JMSConfiguration
클래스의 빈을 정의하여 JMS 구성을 지정합니다. 빈의 속성은 전송에 대한 구성 설정을 제공합니다.
CXF 3.0에서는 JMS 전송에 더 이상 Spring JMS에 종속되지 않으므로 일부 Spring JMS 관련 옵션이 제거되었습니다.
표 14.1. “일반 JMS 구성 속성” 공급자와 소비자에게 공통된 속성을 나열합니다.
속성 | 기본값 | 설명 |
---|---|---|
| [필수] JMS ConnectionFactory를 정의하는 빈에 대한 참조를 지정합니다. | |
|
| CXF 3.0에서 삭제
CXF 3.0 pre CXF 3.0 은 Spring
연결을 풀링하지 않는 ConnectionFactory를 사용할 때 JMS 전송의 성능이 향상되므로 이 속성을 활성화합니다. JMS 전송에서 각 메시지에 대한 새 연결을 생성하고 연결을 캐시하려면 |
|
| CXF 3.0에서 더 이상 사용되지 않는 CXF는 예외가 발생할 때 항상 다시 연결합니다. pre CXF 3.0 예외 발생 시 새 연결을 만들지 여부를 지정합니다.
Spring
|
| 대상의 JNDI 이름 또는 공급자별 이름을 지정합니다. | |
| 응답이 전송되는 JMS 대상의 JMS 이름을 지정합니다. 이 속성을 사용하면 응답에 사용자 정의 대상을 사용할 수 있습니다. 자세한 내용은 14.6절. “이름이 지정된 Reply Destination 사용” 에서 참조하십시오. | |
| DynamicDestinationResolver |
Spring 이 속성을 사용하면 대상 이름이 JMS 대상으로 확인되는 방법을 정의할 수 있습니다. 유효한 값은 다음과 같습니다.
|
| Spring 트랜잭션 관리자에 대한 참조를 지정합니다. 이를 통해 서비스는 JTA 트랜잭션에 참여할 수 있습니다. | |
|
| CXF 3.0에서 삭제 CXF 3.0 preCXF 3.0 Spring TaskExecutor에 대한 참조를 지정합니다. 이는 리스너에서 수신되는 메시지를 처리하는 방법을 결정하는 데 사용됩니다. |
|
| CXF 3.0에서 제거된 CXF 3.0에서는 JMS 1.1 기능만 지원합니다. pre CXF 3.0 에서는 JMS 1.1 기능이 사용되는지 여부를 지정합니다. 유효한 값은 다음과 같습니다.
|
|
| CXF 3.0에서 삭제 pre CXF 3.0 은 JMS 전송에서 JMS 브로커가 메시지 ID를 제공할지 여부를 지정합니다. 유효한 값은 다음과 같습니다.
|
|
| CXF 3.0에서 삭제 CXF 3.0 pre CXF 3.0 은 JMS 전송에서 JMS 브로커가 메시지 타임스탬프를 제공할지 여부를 지정합니다. 유효한 값은 다음과 같습니다.
|
|
| CXF 3.0에서 삭제 pre CXF 3.0 JMS 리스너 컨테이너가 적용할 수 있는 캐싱 수준을 지정합니다. 유효한 값은 다음과 같습니다.
자세한 내용은 Class DefaultMessageListenerContainer를 참조하십시오. |
|
| 주제를 사용할 때 자체 메시지를 수신할지 여부를 지정합니다.
|
|
| 응답 메시지를 대기하는 시간(밀리초)을 지정합니다. |
|
|
각 메시지( |
|
| 메시지가 영구적인지 여부를 지정합니다. 유효한 값은 다음과 같습니다.
|
|
|
메시지 우선 순위를 지정합니다. JMS 우선 순위 값의 범위는 |
|
| 전송된 메시지가 삭제되기 전의 시간(밀리초)을 지정합니다. |
|
| JMS 트랜잭션이 사용되는지 여부를 지정합니다. |
|
| CXF 3.0에서 삭제 pre CXF 3.0 은 리스너에 대한 최소 동시 소비자 수를 지정합니다. |
|
| CXF 3.0에서 삭제 pre CXF 3.0 은 리스너에 대한 최대 동시 소비자 수를 지정합니다. |
| 들어오는 메시지를 필터링하는 데 사용되는 선택기의 문자열 값을 지정합니다. 이 속성을 사용하면 여러 개의 연결이 큐를 공유할 수 있습니다. 메시지 선택기를 지정하는 데 사용되는 구문에 대한 자세한 내용은 JMS 1.1 사양 을 참조하십시오. | |
|
| 서버가 내구성 있는 서브스크립션을 사용하는지 여부를 지정합니다. |
| 내구성 서브스크립션을 등록하는 데 사용되는 이름(문자열)을 지정합니다. | |
|
| 메시지 데이터를 JMS 메시지로 패키징하는 방법을 지정합니다. 유효한 값은 다음과 같습니다.
|
|
| 대상 대상이 항목 또는 큐인지 여부를 지정합니다.Specifies whether the target destination is a topic or a queue. 유효한 값은 다음과 같습니다.
|
|
| JMS 공급자가 Tibco EMS인지 여부를 지정합니다.
|
|
| CXF 3.0에서 삭제 JMS에서 메시지 ID를 사용하여 메시지의 상관 관계를 유지할지 여부를 지정합니다.
클라이언트는 |
|
| CXF 3.0 JMS 대상이 보유할 수 있는 최대 중단된 연속 수를 지정합니다. 현재 숫자가 지정된 최대값을 초과하면 JMSListenerContainer가 중지됩니다. |
|
|
CXF 3.0 은
현재 일시 중단된 연속 수가 |
예 14.2. “JMS 구성 빈” 에 표시된 대로 빈의 속성은 빈 요소에 대한
속성으로 지정됩니다. 모두 Spring p
네임스페이스에 선언됩니다.
예 14.2. JMS 구성 빈
<bean id="jmsConfig" class="org.apache.cxf.transport.jms.JMSConfiguration" p:connectionFactory="jmsConnectionFactory" p:targetDestination="dynamicQueues/greeter.request.queue" p:pubSubDomain="false" />
14.2.4. 끝점에 구성 적용
JMSConfiguration
빈은 Apache CXF 기능 메커니즘을 사용하여 서버 및 클라이언트 끝점 모두에 직접 적용할 수 있습니다. 이렇게 하려면 다음을 수행합니다.
-
끝점의
address
속성을jms://
로 설정합니다. -
jaxws:feature
요소를 엔드포인트의 구성에 추가합니다. -
유형
org.apache.cxf.transport.jms.JMSConfigFeature
의 빈을 기능에 추가합니다. -
빈
요소의p:jmsConfig-ref
속성을JMSConfiguration
빈의 ID로 설정합니다.
예 14.3. “JAX-WS 클라이언트에 JMS 구성 추가” 는 예 14.2. “JMS 구성 빈” 의 JMS 구성을 사용하는 JAX-WS 클라이언트를 표시합니다.
예 14.3. JAX-WS 클라이언트에 JMS 구성 추가
<jaxws:client id="CustomerService" xmlns:customer="http://customerservice.example.com/" serviceName="customer:CustomerServiceService" endpointName="customer:CustomerServiceEndpoint" address="jms://" serviceClass="com.example.customerservice.CustomerService"> <jaxws:features> <bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.cxf.transport.jms.JMSConfigFeature" p:jmsConfig-ref="jmsConfig"/> </jaxws:features> </jaxws:client>
14.2.5. 전송에 구성 적용
JMSConfiguration
빈은 jms:jmsConfig-ref
요소를 사용하여 JMS 구성 및 JMS 대상에 적용할 수 있습니다. jms:jmsConfig-ref
요소의 값은 JMSConfiguration
빈의 ID입니다.
예 14.4. “JMS 구성에 JMS 구성 추가” 는 예 14.2. “JMS 구성 빈” 의 JMS 구성을 사용하는 JMS 구성을 보여줍니다.
예 14.4. JMS 구성에 JMS 구성 추가
<jms:conduit name="{http://cxf.apache.org/jms_conf_test}HelloWorldQueueBinMsgPort.jms-conduit"> ... <jms:jmsConfig-ref>jmsConf</jms:jmsConfig-ref> </jms:conduit>