JAX-WS
1. 개요
JAX-WS는 Java EE 5에서 JAX-RPC를 대체하여 도입된 웹 서비스 기술이다. XML 기반 웹 서비스 표준을 지원하며, WS-I 기본 프로필, WS-Addressing 등을 포함한다. 주요 패키지로는 javax.xml.ws, javax.jws 등이 있으며, 이클립스 메트로, 아파치 CXF, 아파치 Axis2 등이 JAX-WS의 구현체로 사용된다.
| 개발자 | 이클립스 재단 |
|---|---|
| 최초 개발자 | 썬 마이크로시스템즈 |
| 최신 안정화 버전 | 2.3.3 |
| 최신 안정화 버전 출시일 | 2020년 2월 19일 |
| 운영 체제 | 크로스 플랫폼 |
| 플랫폼 | Java |
| 프로그래밍 언어 | Java |
| 장르 | 애플리케이션 프레임워크 |
| 라이선스 | EPL 2.0 또는 GPL v2 w/클래스패스 예외 |
| 웹사이트 | 공식 웹사이트 |
-
자바 플랫폼 -
블루레이
블루레이 디스크는 DVD 후속 매체로, 청색 레이저를 사용하여 고화질 영상과 음향을 제공하며 HD DVD와의 경쟁 후 고밀도 광디스크 표준으로 자리 잡았으나 스트리밍 서비스 성장으로 녹화용 디스크 생산이 중단되는 추세이다. -
자바 플랫폼 -
자바 플랫폼, 마이크로 에디션
자바 ME는 임베디드 및 모바일 장치에서 자바 앱을 실행하는 플랫폼으로, 피처폰에서 주로 사용되었으며 다양한 프로파일과 에뮬레이터, 개발 도구를 제공하고 JSR을 통해 기능이 확장된다. -
자바 플랫폼, 엔터프라이즈 에디션 -
IBM 웹스피어
IBM 웹스피어는 IBM에서 출시한 기업용 소프트웨어 제품군 브랜드로, 다양한 애플리케이션 인프라, 비즈니스 프로세스 통합, 정보 통합 및 개발 도구를 포함한다. -
자바 플랫폼, 엔터프라이즈 에디션 -
자카르타 서버 페이지
자카르타 서버 페이지(JSP)는 웹 애플리케이션 개발에 사용되는 서버 측 스크립팅 기술로, 서블릿으로 변환되어 실행되고 HTML 형태로 결과를 반환하며, 지시어, 스크립틀릿, 표현식, 액션 등의 문법 요소, 표현 언어(EL), JSTL을 통해 동적인 웹 페이지를 구현하고 개발 편의성을 높였다.
2. 명칭 변경
Java EE 5에서 JAX-RPC의 명칭이 JAX-WS로 변경되었다. 이러한 명칭 변경은 웹 서비스가 RPC 타입에서 도큐먼트 타입으로 변경되는 것을 반영한 것이다. 따라서 JAX-RPC 2.0은 JAX-WS 2.0으로 변경되었다.
3. 버전 역사
| JAX-WS 버전 | 발표 | 자바 플랫폼 | 중요한 변화 |
|---|---|---|---|
| JAX-WS 2.0 | Java EE 5 | JSR 224 |
4. 주요 특징
JAX-WS 2.2 스펙 (http://jcp.org/en/jsr/detail?id=224 JSR 224)은 WSDL 연산이 SOAP 메시지가 WSDL 연산을 호출할 때 자바 메서드에 바인딩되는 방식을 결정하는 표준 자바-WSDL 매핑을 정의한다. 이 매핑은 어떤 자바 메서드가 호출되는지와 해당 SOAP 메시지가 메서드의 매개변수에 매핑되는 방식을 결정하며, 메서드의 반환값이 SOAP 응답에 매핑되는 방식도 결정한다.
JAX-WS는 어노테이션을 사용하여 웹 서비스 클라이언트 및 엔드포인트의 개발 및 배포를 단순화한다. 이는 자바 웹 서비스 개발 팩의 일부이며, 버전 6부터 Java SE에서 사용할 수 있다. Java SE 11부터는 JAX-WS가 제거되었다.
JAX-WS 2.0은 JAX-RPC API를 Java Platform, Enterprise Edition 5에서 대체했으며, 이는 문서 스타일 웹 서비스에 더 가깝다. 이 API는 이클립스 메트로(Eclipse Metro)의 핵심을 제공하며, WSIT(Web Services Interoperability Technology)의 기반 중 하나이다.
4.1. 표준 기반
JAX-WS는 다음 표준을 기반으로 한다.
| 표준 |
|---|
| JSR 224 (JAX-WS 2.0/2.1/2.2) |
| WS-I 기본 프로필 1.2 및 2.0 |
| WS-I 첨부 프로필 1.0 |
| WS-I 단순 SOAP 바인딩 프로필 1.0 |
| WS-Addressing 1.0 - 코어, SOAP 바인딩, WSDL 바인딩 |
4.2. 어노테이션 지원
JAX-WS는 어노테이션을 사용하며, 이는 Java SE 5에 도입되어 웹 서비스 클라이언트 및 엔드포인트의 개발 및 배포를 단순화한다. 이는 자바 웹 서비스 개발 팩의 일부이다. JAX-WS는 버전 6부터 Java SE에서 사용할 수 있다. Java SE 11부터 JAX-WS는 제거되었다.
4.3. XML 바인딩
JAX-WS 2.2 스펙(http://jcp.org/en/jsr/detail?id=224 JSR 224)은 WSDL 연산이 SOAP 메시지가 WSDL 연산을 호출할 때 자바 메서드에 바인딩되는 방식을 결정하는 표준 자바-WSDL 매핑을 정의한다. 이 자바-WSDL 매핑은 어떤 자바 메서드가 호출되는지와 해당 SOAP 메시지가 메서드의 매개변수에 매핑되는 방식을 결정한다.
이 매핑은 또한 메서드의 반환값이 SOAP 응답에 매핑되는 방식을 결정한다.
5. 지원 표준
JAX-WS는 다음 표준을 지원한다.
| 표준 |
|---|
| JSR 224 (JAX-WS 2.0/2.1/2.2) |
| WS-I 기본 프로필 1.2 및 2.0 |
| WS-I 첨부 프로필 1.0 |
| WS-I 단순 SOAP 바인딩 프로필 1.0 |
| WS-Addressing 1.0 - 코어, SOAP 바인딩, WSDL 바인딩 |
6. 주요 패키지
| 패키지 | 설명 |
|---|---|
| javax.xml.ws | 핵심 JAX-WS API를 포함한다. |
| javax.xml.ws.http | XML/HTTP 바인딩과 관련된 API를 포함한다. |
| javax.xml.ws.soap | SOAP/HTTP 바인딩과 관련된 API를 포함한다. |
| javax.xml.ws.handler | 메시지 핸들러를 위한 API를 포함한다. |
| javax.xml.ws.spi | JAX-WS를 위한 서비스 제공자 인터페이스(SPI)를 정의한다. |
| javax.xml.ws.spi.http | 컨테이너에서 JAX-WS의 이식 가능한 배포에 사용되는 HTTP SPI를 제공한다. |
| javax.xml.ws.wsaddressing | WS-Addressing과 관련된 API를 포함한다. |
| javax.jws | Java에서 WSDL 매핑 주석과 관련된 API를 포함한다. |
| javax.jws.soap | 웹 서비스를 SOAP 프로토콜에 매핑하기 위한 API를 포함한다. |
7. 관련 기술 규격
JAX-WS 2.2 스펙([http://jcp.org/en/jsr/detail?id=224 JSR 224])은 WSDL 연산이 SOAP 메시지를 통해 호출될 때, 이 메시지가 자바 메서드에 어떻게 바인딩되는지를 정의하는 표준 자바-WSDL 매핑 방식을 제공한다. 이 매핑은 어떤 자바 메서드가 호출될지, 그리고 SOAP 메시지가 메서드의 매개변수에 어떻게 대응되는지를 결정한다.
또한, 이 매핑은 메서드의 반환 값이 SOAP 응답에 어떻게 매핑되는지도 결정한다.
JAX-WS는 어노테이션을 사용하여 웹 서비스 클라이언트와 엔드포인트의 개발 및 배포를 간소화한다. 이는 Java SE 5에 도입되었으며, 자바 웹 서비스 개발 팩의 일부이다. JAX-WS는 버전 6부터 Java SE에서 사용할 수 있지만, Java SE 11부터는 제거되었다. ([http://openjdk.java.net/jeps/320 JEP 320] 참조).
JAX-WS 2.0은 JAX-RPC API를 Java Platform, Enterprise Edition 5에서 대체하며, 이는 문서 스타일 웹 서비스에 더 가깝다.
이 API는 이클립스 메트로(Eclipse Metro)의 핵심 구성 요소이며, WSIT(Web Services Interoperability Technology)의 기반 기술 중 하나이다.
| 명세 | 버전 | 표준 단체 | JSR/URL |
|---|---|---|---|
| JAX-WS | 2.3 | JCP | [http://jcp.org/en/jsr/detail?id=224 224] |
| 웹 서비스 | 1.3 | JCP | [http://jcp.org/en/jsr/detail?id=109 109] |
| WS 메타데이터 | 2.1 | JCP | [http://jcp.org/en/jsr/detail?id=181 181] |
| JAXB | 2.2 | JCP | [http://jcp.org/en/jsr/detail?id=222 222] |
| SAAJ | 1.3 | JCP | [http://jcp.org/en/jsr/detail?id=67 67] |
| SOAP | 1.2 | W3C | [http://www.w3.org/TR/soap/ soap] |
| XML | 1.1 | W3C | [http://www.w3.org/TR/xml xml] |
| WSDL | 1.1 | W3C | [http://www.w3.org/TR/wsdl wsdl] |
8. 구현체
JAX-WS는 WSDL 연산과 자바 메서드 간의 표준 매핑을 정의한다. 이 매핑은 SOAP 메시지가 WSDL 연산을 호출할 때 어떤 자바 메서드가 호출되고, SOAP 메시지가 메서드의 매개변수에 어떻게 매핑되는지를 결정한다. 또한, 메서드의 반환값이 SOAP 응답에 어떻게 매핑되는지도 결정한다.
JAX-WS는 어노테이션을 사용하여 웹 서비스 클라이언트 및 엔드포인트 개발과 배포를 단순화한다. 이는 Java SE 5에 도입되었으며, 자바 웹 서비스 개발 팩의 일부이다. JAX-WS는 버전 6부터 Java SE에서 사용할 수 있다.
JAX-WS 2.0은 JAX-RPC API를 Java Platform, Enterprise Edition 5에서 대체했으며, 이는 문서 스타일 웹 서비스에 더 가깝다.
이 API는 이클립스 메트로의 핵심을 제공하며, WSIT의 기반 중 하나이다.
구현체는 다음과 같다.
* 이클립스 메트로
* 아파치 CXF
* 아파치 Axis2
* 와일드플라이의 JBossWS
* 웹스피어의 IBM WebSphere Jax-Ws
* 오라클 웹로직