14.2. JMS 구성 8080 사용
14.2.1. 개요
JMS 구성을 단순화하고 보다 강력하게 만들기 위해 Apache CXF는 단일 JMS 구성 빈을 사용하여 JMS 엔드포인트를 구성합니다. Cryostat는 org.apache.cxf.transport.jms.JMSConfiguration
클래스에 의해 구현됩니다. 끝점을 직접 구성하거나 JMS conduits 및 대상을 구성하는 데 사용할 수 있습니다.
14.2.2. 구성 네임스페이스
JMS 구성 빈은 Spring p-namespace 를 사용하여 구성을 최대한 간단하게 만듭니다. 이 네임스페이스를 사용하려면 예 14.1. “Spring p-namespace 선언” 와 같이 구성의 root 요소에서 선언해야 합니다.
예 14.1. Spring p-namespace 선언
<beans ... xmlns:p="http://www.springframework.org/schema/p" ... > ... </beans>
14.2.3. 구성 지정
org.apache.cxf.transport.jms.JMSConfiguration
클래스의 8080을 정의하여 JMS 구성을 지정합니다. 8080의 속성은 전송에 대한 구성 설정을 제공합니다.
CXF 3.0에서는 JMS 전송에 더 이상 Spring JMS에 종속되지 않으므로 일부 Spring JMS 관련 옵션이 제거되었습니다.
표 14.1. “일반 JMS 구성 속성” 공급자와 소비자 모두에 공통된 속성을 나열합니다.
속성 | 기본 | 설명 |
---|---|---|
| [required] JMS ConnectionFactory를 정의하는 Cryostat에 대한 참조를 지정합니다. | |
|
| CXF 3.0에서 삭제
CXF 3.0 이전 버전에서는 Spring
JMS 전송의 성능이 향상되므로 연결을 풀지 않는 ConnectionFactory를 사용할 때 이 속성을 활성화합니다. 이는 JMS 전송에서 각 메시지에 대한 새 연결을 생성하고 |
|
| CXF 3.0 CXF에서는 예외가 발생할 때 항상 다시 연결됩니다. CXF 3.0 이전 예외가 발생할 때 새 연결을 만들지 여부를 지정합니다.
Spring
|
| 대상의 JNDI 이름 또는 공급자별 이름을 지정합니다. | |
| 응답이 전송되는 JMS 대상의 JMS 이름을 지정합니다. 이 속성을 사용하면 응답에 사용자 정의 대상을 사용할 수 있습니다. 자세한 내용은 14.6절. “이름이 지정된 대상 사용” 에서 참조하십시오. | |
| DynamicDestinationResolver |
Spring 이 속성을 사용하면 대상 이름이 JMS 대상으로 해석되는 방법을 정의할 수 있습니다. 유효한 값은 다음과 같습니다.
|
| Spring 트랜잭션 관리자에 대한 참조를 지정합니다. 이를 통해 서비스는 JTA 트랜잭션에 참여할 수 있습니다. | |
|
| CXF 3.0에서 삭제 CXF 3.0 이전 TaskExecutor에 대한 참조를 지정합니다. 리스너에서 수신되는 메시지를 처리하는 방법을 결정하는 데 사용됩니다. |
|
| CXF 3.0에서 제거된 CXF 3.0은 JMS 1.1 기능만 지원합니다. CXF 3.0 이전 에서는 JMS 1.1 기능이 사용되는지 여부를 지정합니다. 유효한 값은 다음과 같습니다.
|
|
| CXF 3.0에서 삭제 CXF 3.0 이전 에서는 JMS 전송에서 JMS 브로커가 메시지 ID를 제공할지 여부를 지정합니다. 유효한 값은 다음과 같습니다.
|
|
| CXF 3.0에서 삭제 CXF 3.0 이전 에서는 JMS 전송에서 JMS 브로커가 메시지 타임스탬프를 제공할지 여부를 지정합니다. 유효한 값은 다음과 같습니다.
|
|
| CXF 3.0에서 삭제 CXF 3.0 이전 에서는 JMS 리스너 컨테이너가 적용할 수 있는 캐싱 수준을 지정합니다. 유효한 값은 다음과 같습니다.
자세한 내용은 DefaultMessageListenerContainer를 참조하십시오. |
|
| 주제를 사용할 때 자신의 메시지를 받을지 여부를 지정합니다.
|
|
| 응답 메시지를 대기하는 시간(밀리초)을 지정합니다. |
|
|
QoS 설정(예: priority, persistence, live)이 각 메시지에 대해 명시적으로 설정되어 있는지( |
|
| 메시지가 영구적인지 여부를 지정합니다. 유효한 값은 다음과 같습니다.
|
|
|
메시지 우선 순위를 지정합니다. JMS 우선순위 값의 범위는 |
|
| 전송된 메시지가 삭제되기 전에 시간(밀리초)을 지정합니다. |
|
| JMS 트랜잭션이 사용되는지 여부를 지정합니다. |
|
| CXF 3.0에서 삭제 CXF 3.0 이전 에서는 리스너에 대한 최소 동시 소비자 수를 지정합니다. |
|
| CXF 3.0에서 삭제 CXF 3.0 이전 에서는 리스너에 대한 최대 동시 소비자 수를 지정합니다. |
| 수신 메시지를 필터링하는 데 사용되는 선택기의 문자열 값을 지정합니다. 이 속성을 사용하면 여러 연결이 큐를 공유할 수 있습니다. 메시지 선택기를 지정하는 데 사용되는 구문에 대한 자세한 내용은 JMS 1.1 사양 을 참조하십시오. | |
|
| 서버의 subscriptions를 사용할지 여부를 지정합니다. |
| Cryostat 서브스크립션을 등록하는 데 사용되는 이름(문자열)을 지정합니다. | |
|
| 메시지 데이터를 JMS 메시지로 패키징하는 방법을 지정합니다. 유효한 값은 다음과 같습니다.
|
|
| 대상 대상이 주제인지 또는 큐인지를 지정합니다. 유효한 값은 다음과 같습니다.
|
|
| JMS 공급자가 Tibco Cryostat인지 여부를 지정합니다.
|
|
| CXF 3.0에서 삭제 JMS에서 메시지 ID를 사용하여 메시지 상관 관계를 설정할지 여부를 지정합니다.
|
|
| CXF 3.0 JMS 대상에서 보유할 수 있는 일시 중지된 최대 연속 수를 지정합니다. 현재 번호가 지정된 최대값을 초과하면 JMSListenerContainer가 중지됩니다. |
|
|
CXF 3.0 은
현재 일시 중단된 연속 수가 값 |
예 14.2. “JMS 구성 Cryostat” 에 표시된 것처럼, 빈의 속성은 8080 요소에 대한 속성으로 지정됩니다. 모두 Spring
p
네임 스페이스에 선언되어 있습니다.
예 14.2. JMS 구성 Cryostat
<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
8080은 Apache CXF 기능 메커니즘을 사용하여 서버 및 클라이언트 끝점 모두에 직접 적용할 수 있습니다. 이렇게 하려면 다음을 수행합니다.
-
끝점의
address
속성을jms://
로 설정합니다. -
엔드포인트 구성에
jaxws:feature
요소를 추가합니다. -
org.apache.cxf.transport.jms.JMSConfigFeature
유형의 Cryostat를 기능에 추가합니다. -
8080
요소의
p:jmsConfig-ref
속성을JMSConfiguration
8080의 ID로 설정합니다.
예 14.3. “Cryostat-WS 클라이언트에 JMS 구성 추가” 예 14.2. “JMS 구성 Cryostat” 의 JMS 구성을 사용하는 Cryostat-WS 클라이언트를 표시합니다.
예 14.3. Cryostat-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
8080은 jms:jmsConfig-ref
요소를 사용하여 JMS conduits 및 JMS 대상에 적용할 수 있습니다. jms:jmsConfig-ref
요소의 값은 JMSConfiguration
8080의 ID입니다.
예 14.4. “JMS conduit에 JMS 구성 추가” 예 14.2. “JMS 구성 Cryostat” 의 JMS 구성을 사용하는 JMS 연속을 표시합니다.
예 14.4. JMS conduit에 JMS 구성 추가
<jms:conduit name="{http://cxf.apache.org/jms_conf_test}HelloWorldQueueBinMsgPort.jms-conduit"> ... <jms:jmsConfig-ref>jmsConf</jms:jmsConfig-ref> </jms:conduit>