JMS에서 SOAP를 사용하여 웹 서비스 전송

클라이언트 및 서버 사이에서 SOAP 메시지를 전달할 때 SOAP over JMS(Java™ Message Service) 전송 프로토콜을 SOAP over HTTP의 대안으로 사용할 수 있습니다.

시작하기 전에

웹 서비스는 JMS 전송을 통해 접근성을 위해 엔터프라이즈 Bean으로 구현되어야 합니다.

이 태스크 정보

이 제품은 새로운 산업 표준 SOAP over JMS 프로토콜을 지원합니다. JMS를 통한 SOAP 스펙은 여러 공급업체의 구현 간에 상호 운용이 가능하도록 SOAP 메시지에 JMS 준수 전송을 사용하기 위한 표준 상호 운용성 가이드라인 세트를 제공합니다. 이 표준을 사용하는 경우, JAX-WS(Java API for XML Web Services) 및 JAX-RPC(Java API for XML-based RPC) 웹 서비스 모두에 대해 JMS 전송을 통해 SOAP 요청 메시지와 응답 메시지를 교환할 때 여러 공급업체의 클라이언트와 서버 컴포넌트가 혼합되어 상호 운용될 수 있습니다. JMS 전송을 사용하면 엔터프라이즈 Bean 기반 웹 서비스 클라이언트와 서버가 HTTP 연결이 아닌 JMS 큐 및 주제를 통해서 통신할 수 있습니다.

제거된 기능 제거된 기능: 애플리케이션 서버의 이전 버전에서는 IBM® 소유 SOAP over JMS 프로토콜이 JAX-RPC(Java API for XML-based RPC) 애플리케이션에 대해 지원됩니다. WebSphere® Application Server 7.0 이상에서는 새로운 산업 표준 SOAP over JMS 프로토콜의 선호로 인해 이러한 IBM의 SOAP over JMS 프로토콜이 더 이상 사용되지 않습니다. JAX-WS(Java API for XML Web Services) 또는 JAX-RPC 웹 서비스에서 IBM 소유 SOAP over JMS 프로토콜을 사용할 수 있습니다. 하지만 새로운 표준 SOAP over JMS 프로토콜을 이용하십시오. 클라이언트 애플리케이션이 WebSphere Application Server의 이전 버전에서 지원되는 엔터프라이즈 Bean 기반 웹 서비스를 호출하면 해당 웹 서비스에 액세스하는 데 IBM 소유 SOAP over JMS 프로토콜을 계속해서 사용해야 합니다. depfeat
JMS를 사용하는 경우 이점은 다음과 같습니다.
  • 요청 및 응답 메시지를 전달하는 신뢰할 수 있는 메시징 전송.
  • 클라이언트 및 서버에 대한 유연한 단방향 요청. 예를 들어, 클라이언트는 단방향 요청을 전송하는 경우 활성 상태가 아니어야 합니다. 동시 단방향 요청은 토픽을 사용하여 다중 서버로 전송할 수 있습니다.
  • 동기 양방향 요청은 JAX-WS(Java API for XML-Based Web Services) 및 JAX-RPC(Java API for XML-based RPC) 클라이언트에서 모두 지원됩니다.
  • JAX-WS 클라이언트에 대해 비동기 요청이 지원됩니다.

SOAP over JMS 스펙은 JMS 대상을 지정하는 JMS 엔드포인트 URI 구문을 정의합니다. JMS 엔드포인트 URL은 JMS 전송을 통해 JAX-WS 또는 JAX-RPC 웹 서비스에 액세스하는 데 사용됩니다. 이 URL은 웹 서비스 요청의 포트 컴포넌트 이름과 JMS 대상 및 연결 팩토리를 지정합니다. 이 엔드포인트 URL은 HTTP 엔드포인트 URL과 유사하며, 이 URL은 컨텍스트 루트 및 포트 컴포넌트 이름과 호스트 및 포트를 지정합니다.

프로시저

  1. 서비스 구현 Bean으로 사용하려는 엔터프라이즈 Bean을 개발하십시오.
  2. JAX-WS 애플리케이션의 경우 @BindingType 어노테이션을 엔드포인트 구현 클래스에 추가하고 엔드포인트에서 SOAP over JMS 바인딩 ID를 지정하십시오. 예를 들어 다음과 같습니다.
    @WebService 
    @BindingType("http://www.w3.org/2010/soapjms/")
    public class MyServiceBeanImpl {
        ...
    }

    @BindingType 어노테이션은 엔드포인트에 대한 요청 및 응답 메시지를 전송할 때 사용할 프로토콜(SOAP) 및 전송(JMS)을 표시하는 데 사용됩니다.

  3. 엔터프라이즈 Bean을 어셈블하십시오.
    1. 엔터프라이즈 Bean에서 웹 서비스에 대해 사용 가능한 JAR 파일을 어셈블하십시오. 웹 서비스에 대한 엔터프라이즈 Bean 모듈을 사용하는 데 필요한 아티팩트를 Java 아카이브(JAR) 파일로 어셈블할 수 있습니다.
    2. 웹 서비스 사용 엔터프라이즈 Bean JAR 파일을 엔터프라이즈 아카이브(EAR) 파일로 어셈블하십시오. 웹 서비스 사용 JAR 파일을 사용 가능하게 하는 데 필요한 아티팩트를 EAR 파일로 어셈블할 수 있습니다.
  4. endptEnabler 명령을 사용하여 엔터프라이즈 Bean 기반 엔드포인트를 사용하십시오. -transport jms 옵션을 사용하여 웹 서비스 구현 Bean을 포함하는 endptEnabler 명령이 각 엔터프라이즈 JavaBeans(EJB) 파일에 대한 메시지 구동 Bean(MDB) 리스너를 작성하도록 요청합니다. 이 메시지 구동 Bean은 EJB JAR 파일에 포함된 웹 서비스 엔드포인트와 연관된 요청의 리스너 역할을 합니다.
  5. 애플리케이션에서 사용하는 JMS 오브젝트의 이름 및 유형을 결정하십시오.

    애플리케이션을 설치하기 전에 다음을 수행해야 합니다.

    • 큐 또는 토픽 중에서 웹 서비스가 요청을 수신하는 위치를 결정합니다.
      • 보안 대상 또는 비보안 대상 중 사용할 항목을 결정합니다.
      • 큐 및 토픽, 연결 팩토리, 활성화 스펙의 이름을 결정합니다.
    JMS 오브젝트 이름 및 유형을 결정하는 데 다음 가이드라인을 사용합니다. 일반적인 상황에서는 웹 서비스 요청을 수신할 때 큐를 사용할 수 있습니다.
      • 큐는 모든 유형의 요청을 수신합니다. 올바른 요청으로는, 단방향, 양방향, 동기 요청이 포함됩니다. 비동기 요청은 JAX-WS 웹 서비스에서만 유효합니다.
      • 큐는 해당 EJB JAR 파일에 포함된 웹 서비스 엔드포인트의 요청을 수신하는 경우 단일 EJB JAR 파일에서만 사용됩니다.
    • 토픽
      • 토픽은 단방향 요청만 수신하는 데 사용됩니다.
      • 다중 EJB JAR 파일에서 토픽을 공유할 수 있습니다. 토픽으로 전송되는 각 요청 메시지는 해당 토픽에서 청취하도록 구성된 각 MDB 리스너에서 처리됩니다. 즉, 각 요청 메시지는 해당 특정 토픽과 연관된 각 EJB JAR 파일에서 처리됩니다.

    다음 예제에서는 웹 서비스 엔드포인트를 포함하는 단일 EJB JAR 파일에 대한 일반 구성을 설명합니다.

    • EJB JAR 파일이 StockQuoteEJB.jar이고, StockQuote 서비스와 관련된 하나 이상의 웹 서비스 엔드포인트를 포함한다고 가정합니다.
    • 요청을 수신하는 데 사용되며, JNDI 이름이 jms/StockQuote_Q인 단일 큐, StockQuote_Q가 있습니다.
    • 클라이언트가 JMS 제공자에 연결할 때 사용할 수 있으며, JNDI 이름이 jms/StockQuote_CF인 연결 팩토리, StockQuote_CF가 있습니다.
    • 또한 회신 메시지를 전송할 때 JMS 제공자에 연결하기 위해 EJB JAR 파일의 MDB 리스너가 사용하며, JNDI 이름이 jms/StockQuote_ReplyCF인 연결 팩토리, StockQuote_ReplyCF가 있습니다.
    • 큐 이름이 StockQuote_Q인 StockQuoteEJB.jar의 MDB 리스너와 연관하는 데 사용되며, JNDI 이름이 jms/StockQuote_AS인 활성화 스펙, StockQuote_AS가 있습니다.
  6. JMS 관리 오브젝트를 정의하십시오.

    JMS 오브젝트의 이름과 유형을 결정한 후에 관리 콘솔 또는 wsadmin 스크립트 도구를 사용하여 JMS 오브젝트를 정의합니다. 사용하는 JMS 제공자 유형에 따라 JMS 자원을 관리하는 여러 방법이 있습니다. JMS 자원 관리에 대해 자세히 학습하려면 메시징 제공자 선택을 참조하십시오.

  7. 웹 서비스 애플리케이션을 배치하십시오.
    설치 프로세스 중에 EAR 파일에 포함되어 있으며, 웹 서비스에 대해 사용 가능한 각 엔터프라이즈 Bean JAR 파일의 두 가지 정보 유형에 대한 프롬프트가 표시됩니다.
    • 회신 메시지를 전송할 때 사용할 MDB 리스너에서 사용하는 연결 팩토리의 JNDI 이름.

      웹 서비스가 양방향 조작을 포함하는 경우 endptEnabler 명령에서 정의한 MDB 리스너는 회신 큐에 회신 메시지를 추가하기 위해 큐 연결에 액세스해야 합니다. MDB 리스너는 java:comp/env/jms/WebServicesReplyQCF의 자원 환경 참조를 사용합니다. 따라서 애플리케이션 설치 프로세스 중에 해당 웹 서비스에서 사용할 MDB 리스너에 대한 연결 팩토리의 실제 JNDI 이름을 제공해야 합니다. 이전 예제를 사용하면 JNDI 이름은 jms/StockQuote_ReplyCF입니다.

    • 사용할 MDB 리스너에 대한 활성화 스펙 이름.

      활성화 스펙은 JMS 연결 팩토리를 JMS 오브젝트(큐 또는 토픽)와 연관시키는 데 사용되는 오브젝트입니다. 배치되면 큐 또는 토픽의 메시지를 올바르게 MDB로 전달할 수 있도록 MDB는 올바른 활성화 스펙으로 구성됩니다. 배치 중에 각 MDB 리스너와 연관된 활성화 스펙 이름을 수정할 수 있습니다. 입력 EAR 파일에 포함된 활성화 스펙 이름이 기본값으로 표시됩니다. endptEnabler 명령에 올바른 활성화 스펙 이름을 지정한 경우 기본값을 승인할 수 있습니다. 그렇지 않으면, 올바른 활성화 스펙 이름을 입력하십시오.

  8. 새 업계 표준 SOAP over JMS 프로토콜 또는 IBM 소유 SOAP/JMS 프로토콜 중 사용할 프로토콜을 결정하십시오.
    우수 사례 우수 사례: 업계 표준 SOAP/JMS 프로토콜을 사용하는 것이 우수 사례입니다. IBM 소유 SOAP/JMS 프로토콜은 이 릴리스에서 더 이상 사용되지 않습니다. 그러나 애플리케이션이 제품의 이전 버전과 상호 운영되어야 하는 경우 적절한 프로토콜을 사용하십시오. bprac
    • 업계 표준 SOAP over JMS 프로토콜을 사용하는 경우 JMS 바인딩에 대한 엔드포인트 URL 정보 구성 태스크를 사용하여 표준과 연관된 JMS 엔드포인트 URI 구문을 준수하는 JMS 엔드포인트 URL 접두부를 지정하십시오. 예를 들어, 다음과 같습니다.
      jms:jndi:jms/StockQuote_Q&jndiConnectionFactoryName=jms/StockQuote_CF
    • IBM 소유 SOAP over JMS 프로토콜을 사용하는 경우 JMS 바인딩에 대한 엔드포인트 URL 정보 구성 태스크를 사용하여 IBM 소유 SOAP over JMS 프로토콜을 준수하는 JMS 엔드포인트 URL 접두부를 지정하십시오. 예를 들어, 다음과 같습니다.
      jms:/queue?destination=jms/StockQuote_Q&connectionFactory=jms/StockQuote_CF
  9. (선택사항) JMS 바인딩에 대한 엔드포인트 URL 정보를 구성하십시오.

    관리 콘솔을 사용하여 애플리케이션에서 각 EJB JAR 모듈과 연관시킬 수 있는 JMS 엔드포인트 URL 접두부를 구성합니다. WSDL 게시자는 이 부분 URL 문자열을 사용하여 엔터프라이즈 Bean JAR 파일에 정의된 각 포트 컴포넌트에 대한 실제 JMS URL을 생성합니다. 웹 서비스를 호출하는 데 필요한 클라이언트는 게시된 WSDL 파일을 사용합니다.

    애플리케이션에 대한 WSDL 파일을 게시하는 경우에만 이 단계를 수행합니다.

  10. (선택사항) 애플리케이션에 대한 WSDL 파일을 게시하십시오.

    WSDL 파일을 게시하면 클라이언트 애플리케이션을 개발하는 데 사용할 수 있는 WSDL 문서가 생성됩니다. 게시 프로세스에서는 WSDL 파일 내 완전히 분석되는 엔드포인트 위치 URL을 생성합니다.

    클라이언트 애플리케이션을 개발하는 데 게시된 WSDL 파일이 필요한 경우에만 이 단계를 수행합니다.

결과

요청을 전송하기 위해 SOAP over JMS를 사용하도록 웹 서비스가 구성됩니다.

다음에 수행할 작업

웹 서비스 클라이언트를 개발하십시오.


주제 유형을 표시하는 아이콘 태스크 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_soapjmstransportwbs
파일 이름:twbs_soapjmstransportwbs.html