본 안내서는 기본적인 웹 서비스의 개념과 Java EE 플랫폼에서 프로그래밍이 가능한 개발자라면 웹 서비스를 모르는 상태에서도 웹 서비스 생성이 가능하게 하기 위한 안내서이다. JEUS®(이하 JEUS) 웹 컨테이너 및 JEUS EJB 컨테이너에서 웹 서비스 애플리케이션을 개발, 배치 그리고 유지 보수하는 개발자들을 대상으로 하며 반드시 읽어볼 것을 권장한다.
본 안내서를 원활하게 이해하기 위해서는 다음과 같은 사항을 미리 알고 있어야 한다.
서블릿 개발과 패키징에 대한 기본적인 이해(http://www.oracle.com/technetwork/java/index.html)
EJB 개념에 관한 기본적인 이해
XML, SOAP 프로토콜 그리고 WSDL의 개념에 관한 이해
JEUS의 기본적인 사용법과 제품을 이해하기 위해서는 다음의 안내서를 미리 숙지할 것을 권장한다.
본 안내서의 모든 예제와 환경 구성은 UNIX의 스타일에 준하여 작성되어 Microsoft Windows™(이하 Windows)와 같이 다른 환경에서 작업하는 경우 몇 가지 사항을 고려해야 한다.
예를 들어 경로 구분자의 경우 UNIX 스타일인 “/”를 Windows 스타일인 “\”로 바꿔서 사용한다. 또한 환경변수도 Windows 스타일(%%)로 변경해서 사용한다. 본 안내서에 명시된 JEUS_HOME은 JEUS가 설치된 디렉터리이다.
본 안내서에서는 서블릿 또는 EJB 기술처럼 기본적인 Java EE에 대한 자세한 설명과 Java EE EJB 스펙에 대한 내용은 설명하지 않는다. 그와 관련된 내용은 관련 안내서를 참조한다.
소스 코드와 관련된 XML 파일들은 JEUS를 설치한 후에 samples 디렉터리에 위치한다.
본 안내서는 총 27개의 장으로 구성되어 있다.
웹 서비스의 기본 개념에 대해 설명한다.
JEUS에서 지원하는 웹 서비스의 개념과 지원 방식 및 설계 지침에 대해 설명한다.
웹 서비스를 구현하는 여러 가지 방식에 대해 설명한다.
Java 클래스와 EJB를 Endpoint로 가지는 웹 서비스의 생성과 배치 방법에 대해 설명한다.
웹 서비스를 호출하기 위한 여러 가지 클라이언트 작성과 호출 방법에 대해 설명한다.
WSDL 바인딩의 사용자화 선언에 대해 설명한다.
웹 서비스의 핸들러 프레임워크를 설명한다.
메시지를 XML 메시지 수준으로 다루는 것에 대해 설명한다.
비동기 웹 서비스에 대해 설명한다.
MIME 메시지를 이용하여 웹 서비스의 바이너리 데이터를 효과적으로 다루기 위한 방법을 설명한다.
Fast Infoset을 사용하는 웹 서비스에 대해 설명한다.
JMS 기반 전송을 사용하는 웹 서비스에 대해 설명한다.
웹 서비스에서 정책 기능을 설정하고 운용하는 방법에 대해 설명한다.
웹 서비스에서 Addressing 기능을 설정하고 운용하는 방법에 대해 설명한다.
신뢰성(reliable) 있는 웹 서비스에 대해 설명한다.
웹 트랜잭션에 대해 설명한다.
JAX-WS 웹 서비스의 보안 설정에 대해 설명한다.
JAX-RS 기반 Server-Sent Events에 대해 설명한다.
UDDI 개요와 운영 및 사용 방법에 대해 설명한다.
JEUS 웹 서비스가 지원하고 있는 XML을 다루기 위한 여러 가지 방식에 대해 설명한다.
JAX-RPC 웹 서비스를 구현하는 여러 방식에 대해 설명한다.
Java 클래스와 EJB를 Endpoint로 가지는 JAX-RPC 웹 서비스의 생성과 배치 방법에 대해 설명한다.
JAX-RPC 웹 서비스를 호출하기 위한 여러 가지 클라이언트의 작성과 호출 방법에 대해 설명한다.
“제24장 JAX-RPC 웹 서비스 SOAP 메시지 핸들러 생성”
JAX-RPC 웹 서비스의 메시지 핸들러와 SAAJ를 이용한 SOAP 메시지 처리에 대해 설명한다.
JAX-RPC 웹 서비스의 표준 웹 서비스 Deployment Descriptor와 JAX-RPC 매핑 파일의 작성 방법에 대해 설명한다.
JAX-RPC 스펙에 근거하여 데이터 타입에 관련된 향상된 웹 서비스 프로그래밍에 대해 설명한다.
JAX-RPC 웹 서비스의 보안 설정 방법에 대해 설명한다.
표기 | 의미 |
---|---|
<<AaBbCc123>> | 프로그램 소스 코드의 파일명 |
<Ctrl>+C | Ctrl과 C를 동시에 누름 |
[Button] | GUI의 버튼 또는 메뉴 이름 |
진하게 | 강조 |
" "(따옴표) | 다른 관련 안내서 또는 안내서 내의 다른 장 및 절 언급 |
'입력항목' | 화면 UI에서 입력 항목에 대한 설명 |
하이퍼링크
| 메일 계정, 웹 사이트 |
> | 메뉴의 진행 순서 |
+---- | 하위 디렉터리 또는 파일 있음 |
|---- | 하위 디렉터리 또는 파일 없음 |
참고 | 참고 또는 주의사항 |
주의 | 주의할 사항 |
[그림 1.1] | 그림 이름 |
[예 1.1] | 예제 이름 |
AaBbCc123 | Java 코드, XML 문서 |
[command argument] | 옵션 파라미터 |
< xyz > | ‘<’와 ‘>’ 사이의 내용이 실제 값으로 변경됨 |
| | 선택 사항. 예) A|B: A나 B 중 하나 |
… | 파라미터 등이 반복되어서 나옴 |
${ } | 환경변수 |
요구 사항 | |
---|---|
Platform | Solaris 9, 10, 11 |
HP-UX 11.x, 11i, 11iV2 | |
IBM AIX 5L, 6L, AIX 7L | |
MS Windows 2008, 2012, Vista, 7, 8 | |
Hardware | 최소 2GB 이상 20GB 하드디스크 여유 공간 권장 |
1GB 이상 메모리 공간 권장 | |
JDK | JDK 7, JDK 8 |
안내서 | 설명 |
---|---|
JEUS 소개 | JEUS 서버에 대한 전반적인 소개와 JEUS의 아키텍처를 포함하여 각 구성 요소들에 대해 설명한 안내서이다. |
JEUS 설치 및 시작하기 | JEUS에 대한 소개와 설치 및 시작 방법에 대해 기술한 안내서이다. |
JEUS Server 안내서 | JEUS 시스템과 서버의 개요와 시스템 관리를 위한 안내서이다. |
JEUS Web Engine 안내서 | JEUS 웹 엔진의 관리에 대해 내용과 Java EE WAR Archive, 서블릿/JSP의 관리 및 deploy하는 방법에 대해 기술한 안내서이다. |
JEUS EJB 안내서 | JEUS EJB 엔진과 EJB 모듈의 Deploy에 대해 기술한 안내서이다. |
JEUS WebAdmin 안내서 | JEUS 웹 관리 툴인 WebAdmin을 사용한 JEUS의 설정 및 제어, 모니터링, 클러스터링, 리소스 설정 및 관리에 대해 기술한 안내서이다. |
SOAP 1.1 Specification (http://www.w3.org/TR/soap11)
SOAP 1.2 Specification (http://www.w3.org/TR/soap12)
WSDL 1.1 Specification (http://www.w3.org/TR/wsdl)
UDDI 2.0 Specification (http://uddi.org/pubs/ProgrammersAPI_v2.htm, http://www.oasis-open.org/committees/uddi-spec/doc/tcspecs.htm#uddiv2)
UDDI 3.0 Specification (http://uddi.org/pubs/uddi_v3.htm)
JAX-WS 2.2 Specification (http://jcp.org/en/jsr/detail?id=224)
JAX-RPC 1.1 Specification (http://jcp.org/en/jsr/detail?id=101)
SAAJ 1.2 Specification (http://jcp.org/en/jsr/detail?id=67)
SAAJ 1.3 Specification (http://jcp.org/en/jsr/detail?id=67)
JAXR 1.0 Specification (http://jcp.org/en/jsr/detail?id=93)
WS-I Basic Profile 1.0 (http://www.ws-i.org/Profiles/BasicProfile-1.0.html)
Servlet 2.4 Specification (http://jcp.org/en/jsr/detail?id=154)
Servlet 2.5 Specification (http://jcp.org/en/jsr/detail?id=154)
EJB 2.1 Specification (http://jcp.org/en/jsr/detail?id=153)
EJB 3.0 Specification (http://jcp.org/en/jsr/detail?id=220)
JEUS Web Service Annotations and Feauture
웹 서비스 Endpoint에서 사용할 수 있는 JEUS Web Service Annotations는 다음과 같다.
Service Scope
@jeus.webservices.jaxws.api.ApplicationScope
배치(deployment)된 웹 서비스 Endpoint는 하나의 인스턴스를 갖는다. 이 값은 기본값이다.
@jeus.webservices.jaxws.api.SessionScope
각각의 HTTPSession은 하나의 웹 서비스 Endpoint 인스턴스를 생성한다. 각각 다른 인스턴스를 갖는다. HTTP 전송을 사용할 경우에만 사용할 수 있다.
@jeus.webservices.jaxws.api.RequestScope
요청(request) 메시지가 들어올 때마다 새로운 웹 서비스 Endpoint 인스턴스를 생성한다.
Transport
@jeus.webservices.jaxws.api.JMSWebService
JMS 기반 전송이 가능한 웹 서비스 Endpoint가 된다.
웹 서비스 클라이언트에서 사용할 수 있는 JEUS 웹 서비스 특징은 다음과 같다.
jeus.webservices.jaxws.api.LocalTransportFeature
클라이언트의 웹 서비스 Port가 Local 전송을 사용하여 웹 서비스 Endpoint와 통신한다. 웹 서비스 클라이언트와 Endpoint가 동일한 JVM에 존재할 때만 유효하다.
그 밖의 설정 및 API에 관련된 자세한 내용은 다음의 문서를 참고한다.
콘솔 툴 xjc(JEUS_HOME/docs/reference-book/reference_xjc.html)
콘솔 툴 schemagen(JEUS_HOME/docs/reference-book/reference_schemagen.html)
콘솔 툴 tcpmon(JEUS_HOME/docs/reference-book/reference_tcpmon.html)
ANT Task(JEUS_HOME/docs/reference-book/webservice_appendix_ant_task.html)
XML Reference(JEUS_HOME/docs/reference/schema/index.html,
JEUS_HOME/docs/reference/schema/jeus-webservices-config.xml,
JEUS_HOME/docs/reference/schema/jeus-webservices-dd.xml,
JEUS_HOME/docs/reference/schema/jeus-webservices-dd-client.xml,
JEUS_HOME/docs/reference-book/reference_wsdl2uddi.html)