27.3. 서비스 공급자 구현


27.3.1. 구현 코드 생성

코드 생성기의 -impl 플래그를 사용하여 서비스 공급자를 빌드하는 데 사용되는 구현 클래스를 생성합니다.

참고

서비스 계약에 XML 스키마로 정의된 사용자 지정 형식이 포함된 경우 해당 유형의 클래스가 생성되고 사용 가능한지 확인해야 합니다.

코드 생성기 사용에 대한 자세한 내용은 44.2절. “cxf-codegen-plugin” 을 참조하십시오.

27.3.2. 생성된 코드

구현 코드는 다음 두 파일로 구성됩니다.

  • portTypeName.java - 서비스의 서비스 인터페이스(SEI)입니다.
  • portTypeNameImpl.java - 서비스에서 정의한 작업을 구현하는 데 사용할 클래스입니다.

27.3.3. 작업의 논리 구현

서비스 작업에 대한 비즈니스 논리를 제공하려면 portTypeNameImpl.java 의 스텁 메서드를 완료합니다. 일반적으로 표준 Java를 사용하여 비즈니스 논리를 구현합니다. 서비스에서 사용자 지정 XML 스키마 유형을 사용하는 경우 각 유형에 대해 생성된 클래스를 사용하여 조작해야 합니다. 일부 고급 기능에 액세스하는 데 사용할 수 있는 일부 Apache CXF 특정 API도 있습니다.

27.3.4. 예

예를 들어 예 26.1. “helloworld WSDL 계약” 에 정의된 서비스의 구현 클래스는 예 27.2. “Greeter 서비스 구현” 와 같을 수 있습니다. 굵은 글꼴로 강조 표시된 코드 부분만 해당 speaker에서 삽입해야 합니다.

예 27.2. Greeter 서비스 구현

package demo.hw.server;

import org.apache.hello_world_soap_http.Greeter;

@javax.jws.WebService(portName = "SoapPort", serviceName = "SOAPService",
                      targetNamespace = "http://apache.org/hello_world_soap_http",
                      endpointInterface = "org.apache.hello_world_soap_http.Greeter")

public class GreeterImpl implements Greeter {

    public String greetMe(String me) {
       System.out.println("Executing operation greetMe"); System.out.println("Message received: " + me + "\n"); return "Hello " + me;
    }

    public void greetMeOneWay(String me) {
       System.out.println("Executing operation greetMeOneWay\n"); System.out.println("Hello there " + me);
    }

    public String sayHi() {
       System.out.println("Executing operation sayHi\n"); return "Bonjour";
    }

    public void pingMe() throws PingMeFault {
       FaultDetail faultDetail = new FaultDetail(); faultDetail.setMajor((short)2); faultDetail.setMinor((short)1); System.out.println("Executing operation pingMe, throwing PingMeFault exception\n"); throw new PingMeFault("PingMeFault raised by server", faultDetail);
    }
}
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.