25.3. 서비스에 포트 추가


25.3.1. 개요

서비스에 대한 엔드포인트 정보는 wsdl:port 요소에 정의되어 있으며 Service 오브젝트는 WSDL 계약에 정의된 각 끝점에 대한 프록시 인스턴스를 생성합니다. Service 개체를 만들 때 WSDL 계약을 지정하지 않으면 Service 오브젝트에 서비스를 구현하는 엔드포인트에 대한 정보가 없으므로 프록시 인스턴스를 생성할 수 없습니다. 이 경우 addPort() 메서드를 사용하여 wsdl:port 요소를 나타내는 데 필요한 정보를 Service 오브젝트에 제공해야 합니다.

25.3.2. addPort() 메서드

서비스 클래스는 예 25.3. “addPort() 메서드” 에 표시된 addPort() 메서드를 정의합니다. 이는 소비자 구현에 사용할 수 있는 WSDL 계약이 없는 경우 사용됩니다. addPort() 메서드를 사용하면 Service 오브젝트에 서비스 구현을 위한 프록시를 생성하는 데 필요한 일반적으로 wsdl:port 요소에 저장되는 정보를 제공할 수 있습니다.

예 25.3. addPort() 메서드

addPortQNameportNameStringbindingIdStringendpointAddressWebServiceException

portName 의 값은 QName입니다. 네임스페이스 부분 값은 서비스의 대상 네임스페이스입니다. 서비스의 대상 네임스페이스는 @WebService 주석의 targetNamespace 속성에 지정됩니다. QName의 로컬 부분의 값은 wsdl:port 요소의 name 속성 값입니다. 다음 방법 중 하나로 이 값을 확인할 수 있습니다.

  1. @WebService 주석의 portName 속성에 지정합니다.
  2. @WebService 주석의 name 속성 값에 Port 를 추가합니다.
  3. SEI 이름에 Port 를 추가합니다.

bindingId 매개변수의 값은 끝점에서 사용하는 바인딩 유형을 고유하게 식별하는 문자열입니다. Cryostat 바인딩의 경우 표준 Cryostat 네임스페이스를 사용합니다. http://schemas.xmlsoap.org/soap/. 끝점이 Cryostat 바인딩을 사용하지 않는 경우 bindingId 매개변수의 값은 바인딩 개발자에 의해 결정됩니다. endpointAddress 매개변수의 값은 끝점이 게시되는 주소입니다. Cryostat/HTTP 끝점의 경우 주소는 HTTP 주소입니다. HTTP 이외의 전송에서는 다른 주소 체계를 사용합니다.

25.3.3. 예

예 25.4. “서비스 오브젝트에 포트 추가” 예 25.2. “서비스 오브젝트 생성” 에서 생성된 서비스 오브젝트에 포트를 추가하는 코드를 보여줍니다.

예 25.4. 서비스 오브젝트에 포트 추가

package com.fusesource.demo;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;

public class Client
{
public static void main(String args[])
  {
    ...
    QName portName = new QName("http://demo.redhat.com", "stockQuoteReporterPort");
    s.addPort(portName,
              "http://schemas.xmlsoap.org/soap/",
              "http://localhost:9000/StockQuote");
    ...
  }
}

예 25.4. “서비스 오브젝트에 포트 추가” 의 코드는 다음을 수행합니다.

portName 매개변수에 대한 QName을 생성합니다.

addPort() 메서드를 호출합니다.

끝점에서 Cryostat 바인딩을 사용하도록 지정합니다.

끝점이 게시되는 주소를 지정합니다.

Red Hat logoGithubRedditYoutube

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.