24.2. SEI 생성

24.2.1. 개요

서비스 엔드포인트 인터페이스 (SEI)는 서비스 구현과 해당 서비스에 대한 요청을 수행하는 소비자 간에 공유되는 Java 코드의 일부입니다. SEI는 서비스에서 구현하는 방법을 정의하고 서비스를 엔드포인트로 노출하는 방법에 대한 세부 정보를 제공합니다. WSDL 계약을 시작할 때 SEI는 코드 생성기에 의해 생성됩니다. 그러나 Java에서 시작할 때 개발자는 SEI를 생성해야 할 책임이 있습니다. SEI를 생성하기 위한 두 가지 기본 패턴이 있습니다.

  • 녹색 필드 개발 - 이 패턴에서는 기존 Java 코드 또는 WSDL 없이 새로운 서비스를 개발하고 있습니다. SEI를 만들어 시작하는 것이 가장 좋습니다. 그런 다음 SEI를 사용하는 서비스 공급자 및 소비자를 구현하는 데 책임이 있는 모든 개발자에게 SEI를 배포할 수 있습니다.

    참고

    녹색 필드 서비스 개발을 수행하는 권장 방법은 서비스 및 해당 인터페이스를 정의하는 WSDL 계약을 생성하여 시작하는 것입니다. 26장. Starting Point WSDL 계약 을 참조하십시오.

  • 서비스 활성화 - 이 패턴에서는 일반적으로 Java 클래스로 구현되는 기존 기능 세트가 있으며 서비스 활성화를 원합니다. 즉, 두 가지를 해야 합니다.

    1. 서비스의 일부로 노출되는 작업 포함하는 SEI를 만듭니다.
    2. SEI를 구현하도록 기존 Java 클래스를 수정합니다.

      참고

      JAX-WS 주석을 Java 클래스에 추가할 수 있지만 권장되지는 않습니다.

24.2.2. 인터페이스 작성

SEI는 표준 Java 인터페이스입니다. 클래스에서 구현하는 메서드 집합을 정의합니다. 구현 클래스에서 액세스 권한이 있는 여러 멤버 필드와 상수를 정의할 수도 있습니다.It can also define a number of member fields and constants to which the implementing class has access.

SEI의 경우 정의된 메서드는 서비스에서 노출하는 작업에 매핑되도록 설계되었습니다. SEI는 wsdl:portType 요소에 해당합니다. SEI에서 정의한 방법은 wsdl:portType 요소의 wsdl:operation 요소에 해당합니다.

참고

JAX-WS는 서비스의 일부로 노출되지 않는 메서드를 지정할 수 있는 주석을 정의합니다. 그러나 이러한 방법을 SEI에서 벗어나는 것이 가장 좋습니다.

예 24.1. “간단한 SEI” 는 주식 업데이트 서비스에 대한 간단한 SEI를 보여줍니다.

예 24.1. 간단한 SEI

package com.fusesource.demo;

public interface quoteReporter
{
  public Quote getQuote(String ticker);
}

24.2.3. 인터페이스 구현

SEI는 표준 Java 인터페이스이므로 구현하는 클래스는 표준 Java 클래스입니다. Java 클래스로 시작하는 경우 인터페이스를 구현하도록 수정해야 합니다. SEI로 시작하는 경우 구현 클래스는 SEI를 구현합니다.

예 24.2. “간단한 구현 클래스”예 24.1. “간단한 SEI” 에서 인터페이스를 구현하는 클래스를 보여줍니다.

예 24.2. 간단한 구현 클래스

package com.fusesource.demo;

import java.util.*;

public class stockQuoteReporter implements quoteReporter
{
  ...
public Quote getQuote(String ticker)
  {
    Quote retVal = new Quote();
    retVal.setID(ticker);
    retVal.setVal(Board.check(ticker));[1]
    Date retDate = new Date();
    retVal.setTime(retDate.toString());
    return(retVal);
  }
}


[1] Board is an assumed class whose implementation is left to the reader.