28장. WSDL 계약에서 소비자 개발


초록

소비자를 생성하는 한 가지 방법은 WSDL 계약에서 시작하는 것입니다. 계약은 소비자가 요청하는 서비스의 작업, 메시지 및 전송 세부 정보를 정의합니다. 소비자의 시작점 코드는 WSDL 계약에서 생성됩니다. 소비자가 요구하는 기능은 생성된 코드에 추가됩니다.

28.1. Stub 코드 생성

28.1.1. 개요

cxf-codegen-plugin Maven 플러그인은 WSDL 계약에서 스텁 코드를 생성합니다. 스텁 코드는 원격 서비스에서 작업을 호출하는 데 필요한 지원 코드를 제공합니다.

소비자의 경우 cxf-codegen-plugin Maven 플러그인은 다음과 같은 유형의 코드를 생성합니다.

  • 스텁 코드 - 소비자 구현을 위한 파일 지원.
  • 시작 지점 코드 - 원격 서비스에 연결하고 원격 서비스에서 모든 작업을 호출하는 샘플 코드입니다.

28.1.2. 소비자 코드 생성

소비자 코드를 생성하려면 cxf-codegen-plugin Maven 플러그인을 사용합니다. 예 28.1. “소비자 코드 생성” 코드 생성기를 사용하여 소비자 코드를 생성하는 방법을 보여줍니다.

예 28.1. 소비자 코드 생성

<plugin>
  <groupId>org.apache.cxf</groupId>
  <artifactId>cxf-codegen-plugin</artifactId>
  <version>${cxf.version}</version>
  <executions>
    <execution>
      <id>generate-sources</id>
      <phase>generate-sources</phase>
      <configuration>
        <sourceRoot>outputDir</sourceRoot>
        <wsdlOptions>
          <wsdlOption>
            <wsdl>wsdl</wsdl>
            <extraargs>
              <extraarg>-client</extraarg>
            </extraargs>
          </wsdlOption>
        </wsdlOptions>
      </configuration>
      <goals>
        <goal>wsdl2java</goal>
      </goals>
    </execution>
  </executions>
</plugin>

여기서 outputDir 은 생성된 파일이 배치되고 wsdl 이 WSDL 계약의 위치를 지정하는 디렉터리의 위치입니다. -client 옵션은 소비자의 main() 메서드에 대한 시작점 코드를 생성합니다.

cxf-codegen-plugin Maven 플러그인에 사용할 수 있는 인수의 전체 목록은 44.2절. “cxf-codegen-plugin” 에서 참조하십시오.

28.1.3. 생성된 코드

코드 생성 플러그인은 예 26.1. “helloworld WSDL 계약” 에 표시된 계약에 대해 다음 Java 패키지를 생성합니다.

  • org.apache.hello_world_soap_http - 이 패키지는 http://apache.org/hello_world_soap_http 대상 네임스페이스에서 생성됩니다. 이 네임스페이스에 정의된 모든 WSDL 엔터티(예: Greeter 포트 유형 및 CryostatService 서비스)는 Java 패키지에 매핑됩니다.
  • org.apache.hello_world_soap_http.types - 이 패키지는 http://apache.org/hello_world_soap_http/types 대상 네임스페이스에서 생성됩니다. 이 네임스페이스에 정의된 모든 XML 유형(즉, HelloWorld 계약의 wsdl:types 요소에 정의된 모든)은 이 Java 패키지의 Java 클래스에 매핑됩니다.

cxf-codegen-plugin Maven 플러그인에서 생성한 스텁 파일은 다음 카테고리로 분류됩니다.

  • org.apache.hello_world_soap_http 패키지의 WSDL 엔터티를 나타내는 클래스입니다. 다음 클래스는 WSDL 엔터티를 나타내기 위해 생성됩니다.

    • Cryostater - Greeter wsdl:portType 요소를 나타내는 Java 인터페이스입니다. Cryostat-WS 용어에서 이 Java 인터페이스는 서비스 엔드포인트 인터페이스(SEI)입니다.
    • CryostatService - CryostatService wsdl:service 요소를 나타내는 Java 서비스 클래스( javax.xml.ws.Service라고도 함)입니다.
    • PingMeFault - pingMeFault wsdl:fault 요소를 나타내는 Java 예외 클래스( java.lang.Exceptionextending)입니다.
  • org.objectweb.hello_world_soap_http.types 패키지에서 XML 유형을 나타내는 클래스입니다. HelloWorld 예제에서 유일하게 생성된 유형은 요청 및 응답 메시지에 대한 다양한 래퍼입니다. 이러한 데이터 유형 중 일부는 비동기 호출 모델에 유용합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.