JAX-WS(Java™ API for XML-Based web services를 사용하면,
Java 코드에 어노테이션을 사용하여 웹 서비스 작성을 단순화할 수 있습니다.
JAX-WS(Java API for XML-Based Web Services) 프로그래밍 표준은
웹 서비스 구현과 연관된 메타데이터를 지정하는 데 어노테이션을 사용합니다.
표준은 웹 서비스 개발을 단순화하는 데도 어노테이션을 사용합니다. 어노테이션은 웹 서비스의
두 가지 관점에 대해 설명합니다. 첫 번째는 서버측 서비스 구현이 웹 서비스로 액세스되는 방법이고
두 번째는 클라이언트측 Java 클래스가
웹 서비스에 액세스하는 방법입니다.
JAX-WS 프로그래밍 표준은 서비스 엔드포인트 애플리케이션을 웹 서비스로 정의하고 클라이언트가 서비스에
액세스하는 방법을 지정하는 데 사용되는 메타데이터가 포함된 Java 클래스의
어노테이션 처리를 지원합니다. JAX-WS 표준은 여러 개의 JSR(Java Specification
Requests)을 기반으로 하는 어노테이션 사용을 지원합니다.
- Java
프로그래밍 언어(JSR 175)의 메타데이터 기능
- Java 플랫폼(JSR 181)의 웹 서비스 메타데이터
- JAX-WS(Java API for XML-Based Web Services) 2.0(JSR 224)
- Java 플랫폼(JSR 250)의 공통 어노테이션
JSR 181 표준의 어노테이션을 사용하여
서비스 구현 클래스 또는 서비스 인터페이스를 어노테이션 처리할 수 있습니다. 그런 다음, 마법사를 사용하거나
애플리케이션을 서버에 공개하여 웹 서비스를 생성할 수 있습니다. Java 소스 코드 및
Java 클래스 내에서 어노테이션을 사용하여 웹 서비스 개발을 단순화합니다.
이런 방법으로 어노테이션을 사용하여 일반적으로 배치 디스크립터 파일, WSDL(Web Services Description Language) 파일 또는
XML과 WSDL에서 소스 아티팩트로의 메타데이터 맵핑에서 가져오는 추가 정보를 정의합니다.
바인딩 및 핸들러 체인을 구성하고 portType 이름, 서비스 및 기타 WSDL 매개변수를 구성하기 위해
어노테이션을 사용할 수 있습니다.
빌드 시기에 어노테이션을 사용하여 Java WSDL 및
스키마로 맵핑할 수 있으며, 실행 시에 이를 사용하여 JAX-WS 런타임이 웹 서비스 호출을 처리하고
이에 응답하는 방법을 제어할 수도 있습니다.
제품에서는 클라이언트에서 웹 서비스 클라이언트 마법사를 통해 작성한 어노테이션을 사용합니다. 마법사는
클라이언트 프록시 뿐만 아니라 어노테이션이 포함된 정적 서비스 클래스도 생성합니다. 이 어노테이션은 클라이언트가
웹 서비스에 액세스하는 방법을 지정합니다.
사용할 수 있는 어노테이션에 대한 자세한 정보는 관련 참조를 참조하십시오.
지원되는 어노테이션 기반 웹 서비스 시나리오
웹 서비스 도구 및
WebSphere® 런타임 환경에서는 다음과 같은 웹 서비스 시나리오를
지원합니다.
표 1. | 시나리오 |
런타임 환경 |
주석 |
| 상향식 Java Bean |
- WebSphere Application
Server v6.1(웹 서비스용 기능팩 포함)
- WebSphere Application
Server 버전 7.0
|
- 어노테이션 단독 또는 웹 서비스 마법사의 조합을 사용하여 완료할 수 있습니다. Bean에 이미 @javax.jws.WebService 어노테이션이 있는 경우
마법사가 위임 Bean을 생성하지 않아도 되기 때문에 이 마법사에 있는 대부분의 필드는 사용
불가능합니다. WSDL 파일 생성만 선택할 수 있습니다. Java Bean에 @javax.jws.WebService만 추가한 상태에서
SOAP 1.2 바인딩 또는 MTOM과 같은 다른 옵션을 사용하도록 설정하려면, 마법사를 종료한 후 어노테이션을 제거하거나
어노테이션 문서를 사용하여 웹 서비스 작성 단계를 진행해야 합니다. 마법사는 부분적으로 어노테이션이 이미 있는 기존 Bean에 새 어노테이션을 추가할 수 없습니다.
|
| 상향식 EJB 2.x |
|
|
| 상향식 EJB 3.0 |
- WebSphere Application
Server 버전 7.0
|
- 어노테이션과 웹 서비스 마법사를 함께 사용할 수 없습니다. 어노테이션을
사용하고 EJB Bean을 애플리케이션 서버에 배치해야 합니다.
|
| 중간 합류식 Java Bean |
- WebSphere Application
Server v6.1(웹 서비스용 기능팩 포함)
- WebSphere Application
Server 버전 7.0
|
- 이 시나리오를 사용하면 wsdlLocation 속성을 사용하여 웹 서비스 어노테이션이 있는
Java Bean을 WSDL 문서로 맵핑할 수 있습니다.
- 참고: SOAP 1.2를 사용하려는 경우
@javax.xml.ws.BindingType (value=javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING)
@WebService 어노테이션의
wsdlLocation 속성을 다음 예제와 같이 지정해야 합니다.
@javax.jws.WebService (targetNamespace="http://p/", ..., wsdlLocation="WEB-INF/wsdl/EchoService.wsdl")
이는
WebSphere Application Server에서 동적으로 생성된 WSDL 파일을 사용할 수 없지만
WSDL 파일을 미리 작성해야 함을 의미합니다. 또는 웹 서비스 마법사를 사용해도 됩니다. Java Bean에서
웹 서비스를 생성할 때 SOAP 1.2를 사용하도록 선택할 경우 웹 서비스 마법사에서 WSDL 파일을
자동으로 생성합니다.
- 자세한 정보는 Java Bean 및 WSDL 파일에서 웹 서비스 작성을 참조하십시오.
|
| 중간 합류식 EJB 3.0 |
- WebSphere Application
Server 버전 7.0
|
|
예제
예를 들어, Java 소스에
@WebService 태그를 임베드하여 웹 서비스로 Bean을 표시할 수 있습니다.
@WebService
public class QuoteBean implements StockQuote {
public float getQuote(String sym) { ... }
}
@WebService 어노테이션은 해당 Bean의 전체 공용 메소드를 웹 서비스로 표시하도록
서버 런타임 환경에 설정합니다. 메소드나 매개변수 각각에 기타 어노테이션을 추가하여
추가 표시 레벨을 제어할 수 있습니다. 어노테이션을 사용하면 웹 서비스로 Java 아티팩트를
표시하기 더 쉬워집니다. 또한 WSDL 파일을 시작으로 하는 일부 하향식 맵핑 도구를 사용하여
아티팩트를 작성할 때 어노테이션은 소스 및 Java
클래스 내에 소스 파일과 같이 메타데이터를 캡처하는 방법으로 포함됩니다.