13.3. WSDL 확장
13.3.1. 개요
WSDL 확장 요소를 바인딩 범위, 서비스 범위 또는 포트 범위에서 계약에 삽입하여 JMS 전송의 기본 구성을 지정할 수 있습니다. WSDL 확장을 사용하면 JNDI InitialContext
를 부트 스트랩하기 위한 속성을 지정할 수 있으며, 이를 사용하여 JMS 대상을 조회할 수 있습니다. JMS 전송 계층의 동작에 영향을 주는 일부 속성을 설정할 수도 있습니다.
13.3.2. Cryostat/JMS 네임스페이스
Cryostat/JMS WSDL 확장은 http://www.w3.org/2010/soapjms/
네임스페이스에 정의됩니다. WSDL 계약에서 사용하려면 wsdl:definitions
요소에 다음 설정을 추가합니다.
<wsdl:definitions ... xmlns:soapjms="http://www.w3.org/2010/soapjms/" ... >
13.3.3. WSDL 확장 요소
표 13.4. “Cryostat/JMS WSDL 확장 요소” JMS 전송을 구성하는 데 사용할 수 있는 모든 WSDL 확장 요소를 표시합니다.
element | 기본 | 설명 |
---|---|---|
|
JNDI 공급자의 정규화된 Java 클래스 이름을 지정합니다. | |
|
JNDI 공급자를 초기화하는 URL을 지정합니다. | |
|
JNDI | |
| JMS 연결 팩토리의 JNDI 이름을 지정합니다. | |
|
|
JMS |
|
[optional] 큐 메시지의 응답 대상을 지정합니다. reply 대상은 이 속성의 값은 JMS URI에 지정된 변형에 따라 해석됩니다.
| |
|
| 0(가장 낮음)에서 9(가장 높음)까지의 JMS 메시지 우선 순위를 지정합니다. |
|
|
JMS 공급자가 메시지를 삭제할 시간(밀리초)입니다. 값 0은 무한 수명입니다.A value of |
13.3.4. 구성 범위
WSDL 계약에 배치된 WSDL 요소는 구성 범위가 계약에 정의된 끝점에 변경되는 영향을 미칩니다. Cryostat/JMS WSDL 요소는 wsdl:binding
요소, wsdl:service
요소 또는 wsdl:port
요소의 하위 요소로 배치할 수 있습니다. Cryostat/JMS 요소의 상위는 다음 범위 중 구성에 배치되는 범위를 결정합니다.
- 바인딩 범위
-
wsdl: binding 요소 내에 확장 요소를 배치하여 바인딩 범위에서
JMS 전송을 구성할 수 있습니다. 이 범위의 요소는 이 바인딩을 사용하는 모든 끝점에 대한 기본 구성을 정의합니다. 바인딩 범위의 모든 설정은 서비스 범위 또는 포트 범위에서 재정의할 수 있습니다. - 서비스 범위
-
wsdl: service 요소 내에 확장 요소를 배치하여 서비스 범위에서
JMS 전송을 구성할 수 있습니다. 이 범위의 요소는 이 서비스의 모든 끝점에 대한 기본 구성을 정의합니다. 서비스 범위의 모든 설정은 포트 범위에서 재정의할 수 있습니다. - 포트 범위
-
wsdl: port 요소 내에 확장 요소를 배치하여 포트 범위에서
JMS 전송을 구성할 수 있습니다. 포트 범위의 요소는 이 포트에 대한 구성을 정의합니다. 서비스 범위 또는 바인딩 범위에서 정의된 동일한 확장 요소의 기본값을 재정의합니다.
13.3.5. 예
예 13.9. “Cryostat/JMS 구성과의 WSDL 계약” 에는 Cryostat/JMS 서비스에 대한 WSDL 계약이 표시됩니다. 바인딩 범위, 서비스 범위에서 메시지 전달 세부 정보, 포트 범위에서 응답 대상을 구성합니다.
예 13.9. Cryostat/JMS 구성과의 WSDL 계약
<wsdl:definitions ... xmlns:soapjms="http://www.w3.org/2010/soapjms/" ... > ... <wsdl:binding name="JMSGreeterPortBinding" type="tns:JMSGreeterPortType"> ... <soapjms:jndiInitialContextFactory> org.apache.activemq.jndi.ActiveMQInitialContextFactory </soapjms:jndiInitialContextFactory> <soapjms:jndiURL>tcp://localhost:61616</soapjms:jndiURL> <soapjms:jndiConnectionFactoryName> ConnectionFactory </soapjms:jndiConnectionFactoryName> ... </wsdl:binding> ... <wsdl:service name="JMSGreeterService"> ... <soapjms:deliveryMode>NON_PERSISTENT</soapjms:deliveryMode> <soapjms:timeToLive>60000</soapjms:timeToLive> ... <wsdl:port binding="tns:JMSGreeterPortBinding" name="GreeterPort"> <soap:address location="jms:jndi:dynamicQueues/test.cxf.jmstransport.queue" /> <soapjms:replyToName> dynamicQueues/greeterReply.queue </soapjms:replyToName> ... </wsdl:port> ... </wsdl:service> ... </wsdl:definitions>
예 13.9. “Cryostat/JMS 구성과의 WSDL 계약” 의 WSDL은 다음을 수행합니다.
Cryostat/JMS 확장에 대한 네임스페이스를 선언합니다.
바인딩 범위에서 JNDI 연결을 구성합니다.
JMS 전달 스타일을 비영구적으로 설정하고 각 메시지는 1분 동안 활성화되도록 설정합니다.
대상 대상을 지정합니다.
응답 메시지가 >&# erReply.queue 큐에
전달되도록 JMS 전송을 구성합니다.