JAX-WS(Java™ API for XML-Based Web Services)는
JAX-RPC(Java API for XML-based RPC) 프로그래밍 모델에서 제공된 기반을 확장한
차세대 웹 서비스 프로그래밍 모델입니다. JAX-WS를 사용하면 동적 프록시 및
Java 어노테이션을 사용하여 Java 애플리케이션과는
독립된 더 많은 플랫폼을 사용할 수 있기 때문에 웹 서비스 및 클라이언트 작성이 쉬워집니다.
WebSphere
JAX-WS 런타임 환경 사용
WebSphere® JAX-RPC
및 WebSphere JAX-WS
런타임 환경은 둘 다 도구에서 지원됩니다. 둘 중 하나의 런타임 환경을 사용하여 웹 서비스는 작업공간에 공존할 수 있으며
EAR 파일과 애플리케이션 모듈(웹 프로젝트)을 공유할 수 있습니다. 웹 서비스에서 SOAP 1.2 또는 비동기와 같은
JAX-WS 특정 옵션을 전혀 사용하지 않는 경우에 JAX-RPC 웹 서비스 클라이언트를 JAX-WS 웹 서비스에
액세스하는 데(또는 반대로) 사용할 수도 있습니다.
하향식 또는 상향식 Java 웹 서비스 및 클라이언트를
작성할 수 있습니다. JAX-WS 런타임 환경을 사용하여 EJB 웹 서비스를 생성하는 기능은
WebSphere Application Server 버전 7.0 이상 및 WebSphere Application
Server Liberty Profile 버전 8.5.5에서만
지원됩니다.
Java EE 퍼스펙티브의 서비스 보기에서 JAX-RPC 및 JAX-WS 웹 서비스는
각각의 표제 아래에 나열됩니다.
WebSphere Application
Server V7.0 이상에서는 JAX-WS 런타임을 기본적으로 사용하도록
설정됩니다. 웹 프로젝트를 작성할 때 해당되는 WebSphere Application Server 버전의
기본 구성을 선택하기만 해도 올바른 패싯이 선택됩니다.
JAX-WS 웹 서비스 아티팩트
JAX-WS 웹 서비스는 웹 아카이브(WAR) 파일 또는
엔터프라이즈 아카이브(EAR) 파일 내의 WAR 모듈에 포함되어 있습니다. JAX-WS 사용 WAR 파일에는 다음이 포함되어 있습니다.
- WEB-INF/web.xml 파일
- web.xml은 Servlet이나 Servlet 맵핑 요소를 포함하지 않습니다. WebSphere Application
Server 런타임은 모듈을 로드할 때 이를 동적으로 정의합니다.
- 애플리케이션 모듈에 포함된 웹 서비스를 구현하는 어노테이션이 있는 클래스
- 어노테이션이 있는 클래스는 최소한 @javax.jws.WebService 어노테이션을 포함하는 웹 서비스 구현 클래스를
포함해야 합니다. 웹 서비스 관련 어노테이션의 정의 및 스펙은 JAX-WS 및 JSR-181 스펙에서
제공합니다. 웹 서비스 구현 클래스는 WAR 파일의 WEB-INF/lib 디렉토리에 포함된
JAR(Java 아카이브) 파일 내의 디렉토리 또는 WEB-INF/classes 내에 존재할 수 있습니다.
- 애플리케이션 모듈에 포함된 웹 서비스를 설명하는 WSDL(Web Services Description Language) 문서[선택사항]
- 선택적으로 WSDL 문서를 JAX-WS 애플리케이션 패키지에 포함시킬 수 있습니다.
특정 웹 서비스용 WSDL 문서를 생략하는 경우, WebSphere Application Server 런타임 환경은
웹 서비스 구현 클래스에 포함된 어노테이션에도 동적으로 WSDL 정의를 생성합니다.
WSDL 문서를 생략하는 경우
@javax.jws.WebService는 반드시 포함해야 하며 @WebMethod, @WebParam,
@WebResult, @SOAPBinding 어노테이션은 선택적으로 포함할 수 있습니다.