154
JEUS 설치 시작하기 JEUS v6.0 Fix#8 Copyright © 2011 TmaxSoft Co., Ltd. All Rights Reserved.

설치 및 시작하기 - TmaxSoft · modular components, by providing a complete set of services to those components, and by handling many details of application behavior automatically,

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

JEUS

설치 및 시작하기

JEUS v6.0 Fix#8

Copyright © 2011 TmaxSoft Co., Ltd. All Rights Reserved.

Copyright Notice

Copyright © 2011 TmaxSoft Co., Ltd. All Rights Reserved.

대한민국 경기도 성남시 분당구 서현동 272-6 우) 463-824

Restricted Rights Legend

All TmaxSoft Software (JEUS®) and documents are protected by copyright laws and the Protection Act of Com

puter Programs, and international convention. TmaxSoft software and documents are made available under the

terms of the TmaxSoft License Agreement and may only be used or copied in accordance with the terms of this

agreement. No part of this document may be transmitted, copied, deployed, or reproduced in any form or by any

means, electronic, mechanical, or optical, without the prior written consent of TmaxSoft Co., Ltd.

이 소프트웨어(JEUS®) 사용설명서의 내용과 프로그램은 저작권법, 컴퓨터프로그램보호법 및 국제 조약에 의해

서 보호받고 있습니다. 사용설명서의 내용과 여기에 설명된 프로그램은 TmaxSoft Co., Ltd.와의 사용권 계약 하에

서만 사용이 가능하며, 사용권 계약을 준수하는 경우에만 사용 또는 복제할 수 있습니다. 이 사용설명서의 전부 또

는 일부분을 TmaxSoft의 사전 서면 동의 없이 전자, 기계, 녹음 등의 수단을 사용하여 전송, 복제, 배포, 2차적 저

작물작성 등의 행위를 하여서는 안 됩니다.

Trademarks

JEUS® is registered trademark of TmaxSoft Co., Ltd. Other products, titles or services may be registered trademarks

of their respective companies.

JEUS®는 TmaxSoft Co., Ltd.의 등록 상표입니다. 기타 모든 제품들과 회사 이름은 각각 해당 소유주의 상표로서

참조용으로만 사용됩니다.

Open Source Software Notice

This product includes open source software developed and/or licensed by "OpenSSL", "RSA Data Security, Inc.",

"Apache Foundation", and "Jean-loup Gailly and Mark Adler". Information about the aforementioned and the related

open source software can be found in the "${INSTALL_PATH}/license/oss_licenses" directory.

본 제품은 “OpenSSL”, “RSA Data Security, Inc.”, “Apache Foundation” 및 “Jean-loup Gailly와 Mark Adler”에 의

해 개발 또는 라이선스된 오픈 소스 소프트웨어를 포함합니다. 관련 상세 정보는 제품의 디렉터리 “${IN

STALL_PATH}/license/oss_licenses”에 기재된 사항을 참고해 주십시오.

안내서 정보

안내서 제목: JEUS 설치 및 시작하기

발행일: 2011-11-04

소프트웨어 버전: JEUS v6.0 Fix #8

안내서 버전: v2.1.3

내용 목차

I. JEUS 소개하기 ........................................................................................................................ 1

제1장 소개 ......................................................................................................................... 3

1.1. 개요 .................................................................................................................... 3

1.2. 시스템 개념과 역할 ............................................................................................... 5

1.3. 구성 요소와 아키텍처 ........................................................................................... 6

1.3.1. Client Layer ............................................................................................... 7

1.3.2. JEUS WAS Layer ...................................................................................... 7

1.3.3. Source Layer ............................................................................................. 9

1.4. 상호 운용 모듈 ..................................................................................................... 9

1.5. Edition ............................................................................................................... 10

제2장 JEUS 환경 .............................................................................................................. 13

2.1. 관리 툴 .............................................................................................................. 13

2.2. 디렉터리 구조 .................................................................................................... 62

2.3. 환경변수 ............................................................................................................ 16

2.4. 환경설정 파일 .................................................................................................... 17

2.4.1. XML 환경설정 파일 .................................................................................. 17

제3장 JEUS 안내서 구성 ................................................................................................... 21

3.1. 개요 ................................................................................................................... 21

3.2. 안내서의 구성 .................................................................................................... 21

II. JEUS 설치하기 ..................................................................................................................... 27

제4장 설치 개요 및 준비사항 ............................................................................................. 29

4.1. 개요 ................................................................................................................... 29

4.2. 시스템 요구사항 ................................................................................................. 30

4.3. 설치 순서 ........................................................................................................... 31

4.4. Java 2 JDK 설치 ................................................................................................. 32

4.5. JEUS 라이선스 정책 ........................................................................................... 32

제5장 UNIX에서 설치 및 제거 ............................................................................................ 33

5.1. 개요 ................................................................................................................... 33

5.2. GUI 모드에서 설치 ............................................................................................. 33

5.3. 콘솔 모드에서 설치 ............................................................................................. 39

5.4. 설치 확인 ........................................................................................................... 44

5.4.1. 디렉터리 구조 .......................................................................................... 62

5.4.2. 환경설정 ................................................................................................. 47

5.4.3. 기동 확인 ................................................................................................ 49

5.5. GUI 모드에서 제거 ............................................................................................. 53

5.6. 콘솔 모드에서 제거 ............................................................................................. 52

5.7. 제거 확인 ........................................................................................................... 53

제6장 Windows에서 설치 및 제거 ...................................................................................... 55

JEUS iii

6.1. 개요 ................................................................................................................... 55

6.2. 설치 ................................................................................................................... 56

6.3. 설치 확인 ........................................................................................................... 62

6.3.1. 디렉터리 구조 .......................................................................................... 62

6.3.2. 환경설정 ................................................................................................. 64

6.3.3. 기동 확인 ................................................................................................ 66

6.4. 서비스 등록과 제거 ............................................................................................. 69

6.4.1. 서비스 등록 ............................................................................................. 70

6.4.2. 서비스 등록 확인 ..................................................................................... 70

6.4.3. 서비스 제거 ............................................................................................. 71

6.5. 제거 ................................................................................................................... 71

6.6. 제거 확인 ........................................................................................................... 74

III. JEUS 시작하기 .................................................................................................................... 75

제7장 개요 ........................................................................................................................ 77

제8장 시스템 설정 ............................................................................................................. 79

8.1. WebAdmin 사용 ................................................................................................. 79

8.1.1. 기본 환경 구성 ......................................................................................... 79

8.1.2. 컴포넌트 추가와 설정 ............................................................................... 83

8.1.3. 데이터 소스 추가 ..................................................................................... 86

8.1.4. WebAdmin에서 JEUS 기동 ....................................................................... 89

8.2. Text Editor 사용 .................................................................................................. 90

8.2.1. 환경설정 ................................................................................................. 91

8.2.2. 콘솔 창에서 JEUS 기동 ............................................................................ 94

제9장 WebTier 사용하기 ................................................................................................... 97

9.1. 예제 ................................................................................................................... 97

9.2. 컴파일 ............................................................................................................. 100

9.3. WAR 모듈 패키징 ............................................................................................. 101

9.4. Deploy ............................................................................................................. 102

9.5. 실행 및 결과 ..................................................................................................... 106

제10장 EJB 사용하기 ...................................................................................................... 109

10.1. Session Bean 예제 ......................................................................................... 109

10.1.1. 예제 .................................................................................................... 109

10.1.2. 컴파일 ................................................................................................. 111

10.1.3. Deploy ................................................................................................ 111

10.1.4. 실행 및 결과 ........................................................................................ 115

10.2. Java Persistence API 예제 ............................................................................... 116

10.2.1. 예제 .................................................................................................... 116

10.2.2. 컴파일 ................................................................................................. 122

10.2.3. Deploy ................................................................................................ 122

10.2.4. 실행 및 결과 ........................................................................................ 126

제11장 웹 서비스 사용하기 .............................................................................................. 129

iv JEUS 설치 및 시작하기

11.1. 웹 서비스 생성 ................................................................................................ 129

11.1.1. From Java 방식 .................................................................................... 129

11.1.2. From WSDL 방식 ................................................................................. 134

11.2. 웹 서비스 클라이언트 작성 .............................................................................. 136

11.2.1. Java SE 클라이언트의 작성 .................................................................. 136

Appendix A. 플랫폼 별 JDK 설치 ............................................................................................ 139

A.1. Sun Solaris .............................................................................................................. 139

A.2. IBM AIX ................................................................................................................... 139

A.3. HP-UX ..................................................................................................................... 140

A.4. Linux ....................................................................................................................... 140

Appendix B. IPv6 설정 ........................................................................................................... 141

B.1. 소개 ........................................................................................................................ 141

B.2. IPv6 환경설정 .......................................................................................................... 142

JEUS v

그림 목차

[그림 1.1] JEUS의 기능과 역할 .................................................................................................... 5

[그림 1.2] JEUS 웹 애플리케이션 아키텍처 다이어그램 ................................................................. 6

[그림 2.1] JEUS 설치 후 디렉터리 구조 ...................................................................................... 62

[그림 3.1] JEUS 안내서 구성 ...................................................................................................... 22

[그림 4.1] JEUS 설치 순서 ......................................................................................................... 31

[그림 5.1] 설치 툴의 초기화면 .................................................................................................... 34

[그림 5.2] 소개 화면 .................................................................................................................. 34

[그림 5.3] 라이선스 준수 화면 .................................................................................................... 35

[그림 5.4] 플랫폼 선택 화면 ........................................................................................................ 35

[그림 5.5] 설치 디렉터리 선택 화면 ............................................................................................. 36

[그림 5.6] Install Set 선택 화면 ................................................................................................... 36

[그림 5.7] JDK 설치 디렉터리 선택 화면 ..................................................................................... 37

[그림 5.8] 패스워드 입력 화면 .................................................................................................... 37

[그림 5.9] 설치 정보 확인 ........................................................................................................... 38

[그림 5.10] 설치 진행 화면 ......................................................................................................... 38

[그림 5.11] 설치 종료 ................................................................................................................. 39

[그림 5.12] JEUS 설치 후 디렉터리 구조 ..................................................................................... 62

[그림 5.13] 설치 제거 초기 화면 ................................................................................................. 50

[그림 5.14] JEUS 제거 진행 화면 ................................................................................................ 51

[그림 5.15] JEUS 제거 종료 ....................................................................................................... 51

[그림 6.1] 설치 툴 초기 화면 ....................................................................................................... 56

[그림 6.2] 소개 화면 .................................................................................................................. 57

[그림 6.3] 라이선스 준수 화면 .................................................................................................... 57

[그림 6.4] 설치 디렉터리 선택 화면 ............................................................................................. 58

[그림 6.5] Install Set 선택화면 .................................................................................................... 58

[그림 6.6] JDK 설치 디렉터리 선택 화면 ..................................................................................... 59

[그림 6.7] Windows 서비스 등록 여부 선택 화면 .......................................................................... 59

[그림 6.8] 패스워드 입력 화면 .................................................................................................... 60

[그림 6.9] 설치 정보 확인 ........................................................................................................... 60

[그림 6.10] 설치 진행 확인 ......................................................................................................... 61

[그림 6.11] 설치 종료 확인 ......................................................................................................... 61

[그림 6.12] JEUS 설치 후 디렉터리 구조 ..................................................................................... 62

[그림 6.13] WebAdmin 로그인 화면 ............................................................................................ 68

[그림 6.14] WebAdmin 노드 관리 페이지 ..................................................................................... 68

[그림 6.15] 노드 다운 페이지 ...................................................................................................... 69

[그림 6.16] 노드 종료 페이지 ...................................................................................................... 69

[그림 6.17] 설치 제거 초기 화면 ................................................................................................. 72

[그림 6.18] Windows 서비스 제거 ............................................................................................... 72

[그림 6.19] 설치 제거 진행 화면 ................................................................................................. 73

[그림 6.20] 설치 제거 완료 화면 ................................................................................................. 73

JEUS vii

[그림 8.1] 로그인 화면 ............................................................................................................... 80

[그림 8.2] 초기 화면 .................................................................................................................. 81

[그림 8.3] JEUS 노드 트리 ......................................................................................................... 82

[그림 8.4] 엔진 컨테이너 개요 .................................................................................................... 83

[그림 8.5] 엔진 컨테이너 생성 .................................................................................................... 84

[그림 8.6] 엔진 컨테이너 생성 후 ................................................................................................ 84

[그림 8.7] 엔진 개요 .................................................................................................................. 85

[그림 8.8] 엔진 생성 .................................................................................................................. 85

[그림 8.9] 엔진 생성 후 .............................................................................................................. 85

[그림 8.10] Web Listener 설정 .................................................................................................... 86

[그림 8.11] JDBC 데이터소스 ..................................................................................................... 87

[그림 8.12] 데이터소스 선택 ....................................................................................................... 87

[그림 8.13] 데이터소스 속성 ....................................................................................................... 88

[그림 8.14] 데이터소스 연결풀 ................................................................................................... 88

[그림 8.15] 데이터소스 생성 후 .................................................................................................. 89

[그림 8.16] JEUS 매니저의 제어 중 부트 화면 ............................................................................. 89

[그림 8.17] JEUS 매니저의 제어 중 종료 화면 ............................................................................. 90

[그림 8.18] 엔진 컨테이너 제어 .................................................................................................. 90

[그림 9.1] WAR 모듈 deploy 초기화면 ....................................................................................... 102

[그림 9.2] WAR 모듈 deploy 대상선택 ....................................................................................... 103

[그림 9.3] WAR 모듈 deploy 선택사항 ....................................................................................... 103

[그림 9.4] WAR 모듈 deploy ..................................................................................................... 104

[그림 9.5] WAR 모듈 deploy ..................................................................................................... 104

[그림 9.6] WAR 모듈 서블릿 호출 ............................................................................................. 106

[그림 9.7] WAR 모듈 JSP 호출 ................................................................................................. 107

[그림 10.1] HelloEJB Deploy 초기화면 ...................................................................................... 112

[그림 10.2] HelloEJB Deploy 대상 선택 ..................................................................................... 113

[그림 10.3] HelloEJB Deploy시 선택 사항 .................................................................................. 113

[그림 10.4] HelloEJB Deploy .................................................................................................... 114

[그림 10.5] HelloEJB Deploy .................................................................................................... 114

[그림 10.6] HelloEJB 클라이언트 화면 ...................................................................................... 115

[그림 10.7] HelloEJB 서블릿 클라이언트 수행 결과 .................................................................... 116

[그림 10.8] HelloJPA Deploy 초기 화면 ..................................................................................... 123

[그림 10.9] HelloJPA Deploy 대상 선택 ..................................................................................... 123

[그림 10.10] HelloJPA Deploy 선택 사항 ................................................................................... 124

[그림 10.11] HelloJPA Deploy 배치 옵션 ................................................................................... 124

[그림 10.12] Deploy된 HelloJPA ............................................................................................... 125

[그림 10.13] HelloJPA 클라이언트 화면 ..................................................................................... 126

[그림 10.14] HelloJPA 서블릿 클라이언트 수행 결과 .................................................................. 127

[그림 11.1] 성공적으로 배치된 AddNumbers ............................................................................. 131

[그림 11.2] 성공적으로 배치된 From WSDL 방식의 웹 서비스 .................................................... 135

viii JEUS 설치 및 시작하기

표 목차

[표 1.1] JEUS 6가 지원하는 JavaEE 스펙 ..................................................................................... 4

[표 1.2] JEUS Client Layer ........................................................................................................... 7

[표 1.3] JEUS Manager ............................................................................................................... 7

[표 1.4] JEUS Engine .................................................................................................................. 8

[표 1.5] JEUS 관리 툴 .................................................................................................................. 8

[표 1.6] Source Layer .................................................................................................................. 9

[표 1.7] 상호 운용 모듈 ................................................................................................................ 9

[표 1.8] JEUS Edition ................................................................................................................ 10

[표 2.1] JEUS 관리 툴 ................................................................................................................ 13

[표 2.2] JEUS 환경변수 ............................................................................................................. 16

[표 4.1] 시스템 요구사항 ............................................................................................................ 30

[표 4.2] 플랫폼 지원 환경 ........................................................................................................... 30

[표 5.1] 환경변수 설정 ............................................................................................................... 47

[표 6.1] JEUS 설치 시 환경변수 설정 .......................................................................................... 65

[표 9.1] 서블릿 Request Path의 항목과 의미 ............................................................................. 106

JEUS ix

예 목차

[예 8.1] <<JEUSMain.xml>> ...................................................................................................... 91

[예 8.2] <<EJBMain.xml>> ......................................................................................................... 93

[예 8.3] <<WEBMain.xml>> ....................................................................................................... 93

[예 9.1] <<HelloWorldServlet.java>> ........................................................................................... 97

[예 9.2] <<snoop.jsp>> .............................................................................................................. 98

[예 9.3] <<snoop-jstl.jsp>> ......................................................................................................... 99

[예 9.4] <<jeus-web-dd.xml>> .................................................................................................. 101

[예 9.5] <<web.xml>> .............................................................................................................. 101

[예 10.1] <<Hello.java>> .......................................................................................................... 109

[예 10.2] <<HelloBean.java>> .................................................................................................. 109

[예 10.3] <<HelloClient.java>> .................................................................................................. 110

[예 10.4] <<Product.java>> ...................................................................................................... 116

[예 10.5] <<ProductManager.java>> ......................................................................................... 118

[예 10.6] <<ProductManagerBean.java>> ................................................................................. 118

[예 10.7] <<ProductManagerClient.java>> ................................................................................ 120

[예 11.1] <<AddNumbersImpl.java>> ........................................................................................ 130

[예 11.2] 샘플 예제 실행 .......................................................................................................... 131

[예 11.3] <<AddNumbersImpl.java>> ........................................................................................ 134

[예 11.4] <<AddNumbersClient.java>> ...................................................................................... 136

[예 B.1] <<hosts>> .................................................................................................................. 141

JEUS xi

Part I. JEUS 소개하기

Part I. JEUS 소개하기 1

제1장 소개

본 장에서는 JEUS에 대한 기본적인 이해와 Java EE 스펙에 대해서 설명하고, JEUS 시스템의 개념 및 구

성 요소와 에디션별 기능에 대해 기술한다.

1.1. 개요JEUS는 “Java Enterprise User Solution”의 약자이다. JEUS는 웹 환경에서 애플리케이션을 개발, 운용,

실행할 수 있는 플랫폼 역할을 하면서, 포괄적인 Java 기반의 웹 애플리케이션 서비스와 관리를 제공한다.

JEUS는 Java EE 애플리케이션을 구동할 때 필요한 플랫폼과 다음의 같은 구성 요소를 제공한다.

● EJB 컨테이너

● 웹 컨테이너(JSP/서블릿 엔진)

● 보안 모듈(Security Module)

● Naming 서버

● 트랜잭션 매니저

● JDBC Connection Pool

● 세션 매니저

Java EE

JEUS는 Sun Microsystems사의 Java Enterprise Edition 스펙을 준수하며, Java EE 5인증을 획득했다. 다

음은 Sun Microsystems사의 웹 사이트에 있는 문구로 JEUS는 나열된 모든 기술들을 제공한다.

"The Java Platform, Enterprise Edition (Java EE) defines the standard for developing multitier enterprise

applications. The Java EE platform simplifies enterprise applications by basing them on standardized,

modular components, by providing a complete set of services to those components, and by handling

many details of application behavior automatically, without complex programming."

"The primary technologies in Java EE are: Enterprise JavaBeansTM (EJBsTM), JavaServer PagesTM

(JSPsTM), Java Servlets, the Java Naming and Directory InterfaceTM (JNDITM), the Java Transaction

API (JTA), CORBA, and the JDBCTM data access API."

참고

Java EE에 대해서 보다 자세한 정보를 알아보기 위해서는 Oracle사의 홈페이지(http://www.ora

cle.com/technetwork/java/javaee/overview/index.html)를 참고한다.

제1장 소개 3

다음은 JavaEE의 스펙 중에서 JEUS 6에서 구현한 기능 목록이다. 스펙에 대한 내용은 http://www.ora

cle.com/technetwork/java/javaee/tech/index.html에서 확인할 수 있다.

[표 1.1] JEUS 6가 지원하는 JavaEE 스펙

Version supported in JEUS 6Specification/Technology

5.0Java Platform, Enterprise Edition 5 Specification

3.0Enterprise JavaBeans Specification

2.1Java Server Pages Specification

2.5Java Servlet Specification

1.2.1Java Naming and Directory Interface Specification

1.1Java Message Service Specification

3.0JDBC Specification

1.4JavaMail API Specification

1.1Java Transaction API Specification

1.0Java Persistence API

1.0.1JNLP Specification

1.5JCA

1.1JavaBeans Activation Framework

1.1Java EE Management

1.2Java EE Deployment

1.2JSTL

1.2JSF

1.0.1JAAS

1.2SOAP

1.2WSDL

1.1JAX-RPC (Full)

2.1JAX-WS

2.1JAXB

1.0JAXR

1.3SAAJ (Full)

1.0StAX

1.2Enterprise Web Services

1.1JACC

4 JEUS 설치 및 시작하기

사용하는 JEUS 에디션에 따라서 위 표에 나열된 모든 기능이 구현되지 않을 수 있다. 자세한 내용은 각

JEUS 에디션 소개 자료를 참조한다.

1.2. 시스템 개념과 역할다음은 엔터프라이즈 애플리케이션 솔루션을 제공하기 위해서 JEUS가 다른 웹 서버나 DBMS등과 어떻

게 통합되는지 보여준다.

[그림 1.1] JEUS의 기능과 역할

EIS Layer

Node

Engine Container

EJB Engine

Servlet/JSP Engine

JMS Engine

Web Server

Databa

seHTML

Applet

JNLP

Client

Java

Corba

Application

HTTP

HTTP/

RMI

JNLP

RMI/II

OP

Client

TP

Monitor

Directory

Server

Other

ORB

Legacy

EIS

JEUS/WAS LayerWeb/Internet

LayerClient Layer

Other JEUS Nodes

WS Engine

Other Services

Java

ApplicationRMI

JEUS Manager

Security Service

Other Services

JNDI Service

위 그림에서 나타난 4가지 Layer는 다음과 같다.

● Client Layer

웹 서버나 Java 애플리케이션 또는 Native 애플리케이션으로 구성된다. 최종 사용자는 WAS의 서비스

를 사용하기 위해서 다양한 클라이언트를 사용하며, 이 클라이언트는 다양한 프로토콜 중에 하나를 사

용해서 WAS의 서비스에 접근한다.

● Web/Internet Layer

클라이언트와 WAS 사이의 중간에서 작동하는 웹 서버나 프로토콜로 정의된다. 이 Layer에서는 정적인

콘텐츠와 부하 분산을 처리한다.

● JEUS Java EE WAS Layer

Java 기반의 미들웨어로 구성되며, Web Layer나 Client Layer로부터 오는 요청을 받아서 처리한다.

● EIS Layer

비즈니스 데이터나 기존의 Legacy 서비스를 나타낸다. WAS는 JDBC나 디렉터리 서비스, Java EE

Connector 등의 다양한 메커니즘을 통해서 Legacy 서비스와 상호 작용한다.

제1장 소개 5

1.3. 구성 요소와 아키텍처JEUS는 많은 서로 다른 모듈들로 구성되어 있다. 이러한 모듈들은 다음의 [그림 1.2]에서 클라이언트 애

플리케이션과 데이터 저장장치, JEUS 사이의 통신 기술에 따라서 사용된다.

[그림 1.2] JEUS 웹 애플리케이션 아키텍처 다이어그램

Client Layer는 다양한 형태의 클라이언트 애플리케이션과 통신 프로토콜을 보여주고 있다. Source Layer

는 다양한 형태의 back-end 데이터 저장장치들이 나열되어 있다. TmaxSoft의 JEUS 제품은 WebtoB와 더

불어 그림의 중간부분인 Middleware layer를 구성한다. 웹 서버는 클라이언트 애플리케이션과 연결되어

있으며, 웹 서버는 웹 애플리케이션 서버와 밀접하게 통합되어 있다. 또한 웹 게이트웨이(WebT)는 WAS

와 TP-Monitor를 연계시키며, 마지막으로 MainFrame 게이트웨이(Host-Link)는 MainFrame과 TP-Monitor

사이의 연결을 제공한다.

다음 절에서는 그림에서 보이는 3가지 Layer의 구성 요소(Client Layer, JEUS WAS Layer, Source Layer)

에 대해 알아본다.

6 JEUS 설치 및 시작하기

1.3.1. Client Layer

Client Layer(클라이언트 계층)는 JEUS를 사용할 수 있는 원격 혹은 지역 애플리케이션을 나타낸다.

다음은 Client Layer를 구성하는 유형에 대한 설명이다.

[표 1.2] JEUS Client Layer

설명Client Layer

가장 일반적인 클라이언트 애플리케이션은 HTML 콘텐츠를 얻기 위해 JEUS

서블릿 엔진과 WebtoB Light 웹 서버에 요청을 하는 표준 웹 브라우저이다. 통

신 프로토콜은 HTTP이다.

HTML/Web browser

웹 서비스의 구현을 제공한다.Web Service Client

JEUS 자신의 구성 요소를 참조할 수 있는 애플릿 컨테이너를 제공한다.Applet

일반적인 독립된 Java 애플리케이션들은 JEUS에 의해 제공되는 클라이언트

컨테이너 내에서 RMI를 사용하여 실행된다. 이러한 클라이언트들을 Java EE

스펙에서는 애플리케이션 클라이언트라고 한다.

Java Application

CORBA 기술을 사용한 애플리케이션도 RMI/IIOP를 통해 JEUS를 사용할 수

있다.

CORBA Application

네트워크 관리 시스템은 JMX를 통해 JEUS를 관리하고 사용할 수 있다.NMS

JNLP(Java Network Lanuching Protocol) 클라이언트들은 JEUS 6에서 지원된

다.

JNLP Client

1.3.2. JEUS WAS Layer

[그림 1.2]에서 JEUS WAS Layer는 Java EE 5 스펙을 인증받은 JEUS 6 제품을 나타내며 구성 요소는 다

음과 같다.

● JEUS Manager

JEUS의 핵심적인 서버로 전체 JEUS 시스템의 기반과 관리를 제공한다. 몇 개의 JEUS Manager들이

클러스터링을 구성할 수도 있다.

[표 1.3] JEUS Manager

설명서비스

Naming 시스템이다.JNDI

인증과 권한 서비스이다.Security

웹 애플리케이션 서버에서 구동되는 다양한 애플리케이션들에 대한 완전한 트

랜잭션을 제공한다.

JTA

미리 정해진 시간에 이벤트를 발생시키는 타이머 기능을 제공한다.Scheduler

제1장 소개 7

설명서비스

클러스터링이 필요한 경우 신뢰성있는 방식으로 클라이언트의 세션 정보를 저

장한다.

Session Manager

데이터베이스 Connection Pool이 설정될 수 있다.JDBC

NMS/JMX 클라이언트가 JEUS 시스템을 관리할 수 있도록 한다.JMX

JCA는 Java EE Connector Architecture로, JCA를 지원하는 어떠한 Lagacy

EAI(Enterprise Application Integration)에 대해서도 JEUS의 연결을 지원한다.

JCA

● JEUS Engine Container

JEUS 시스템에서 구성될 수 있는 다양한 형태의 엔진에 대한 기반을 제공하며, 다음과 같은 4가지의

유형이 있다.

[표 1.4] JEUS Engine

설명Engine

EJB 3.0 비즈니스 애플리케이션을 구동한다.EJB Engine

웹 컨테이너로, 정적인 콘텐츠(HTML)뿐만 아니라 JSP/서블릿 애플리케이션을

구동한다.

Servlet Engine

JMS 기반 구조를 제공한다.JMS Engine

JEUS 웹 서버의 인스턴스로서 서블릿 엔진의 front-end로 구동된다.WS Engine

● WebtoB(or Apache) Web Server

웹 서버는 HTML과 같은 정적인 콘텐츠와 CGI와 같은 동적인 콘텐츠를 전송한다. 또한 서블릿 엔진의

front-end로서 상호 작용한다. WebtoB는 2개의 버전이 있는데, 하나는 TmaxSoft의 WebtoB 웹 서버로

서 모든 기능을 지원하며, 또 다른 하나는 WebtoB 버전의 일부 축소된 기능 만을 가진 JEUS 웹 서버가

있다.

JEUS 웹 서버는 JEUS에 포함되어 있으며, WebtoB에는 포함되어 있지 않다. 그리고 오픈 소스 웹 서버

인 Apache 또한 JEUS에서 사용할 수 있다.

● JEUS Administration Tools

JEUS는 다음과 같은 2가지의 주요한 관리 툴이 있다.

[표 1.5] JEUS 관리 툴

설명툴

JEUS의 모듈 패키징, 설정 이외의 모든 구성 요소들을 관리하고 웹 브라우저에

서 사용될 수 있는 웹 툴이다.

WebAdmin

그래픽 툴을 통해 사용될 수 있는 모든 기능은 명령행 기반의 콘솔 툴을 사용해

서 수행될 수 있다. 이 툴은 그래픽 환경을 사용하지 않을 때 사용한다.

Console Tool

8 JEUS 설치 및 시작하기

1.3.3. Source Layer

[그림 1.2]의 오른쪽의 Source Layer는 back-end의 리소스와 JEUS 시스템에 의해 사용될 수 있는 데이터

저장소를 나타내며, 종류는 다음과 같다.

[표 1.6] Source Layer

설명Source 계층

JEUS에서 JDBC를 통해서 접속할 수 있다.Database

LDAP와 같은 것들이 있으며, JNDI를 통해서 사용된다.Directory Server

JEUS는 타 벤더의 Java EE 서버와 상호 작용이 가능하다.Other Java EE Server

TmaxSoft에서 개발한 TP-Monitor로, WebT API 라이브러리는 JEUS와 Tmax

를 통합하는 데 사용된다.

Tmax Server

IIOP(Internet Inter-ORB Protocol)를 통해 참조될 수 있다.ORB

IBM MainFrame들은 특별히 Host-Link(혹은 Java EE Connector) 제품을 통

해 사용된다.

Mainframe

Java EE Connector Architecture를 지원하는 Legacy EIS로 JEUS와 상호 작

용이 가능하다.

Legacy EIS

1.4. 상호 운용 모듈상호 운용성이란 예상되는 결과를 얻기 위해 2개 혹은 그 이상의 시스템(컴퓨터, 통신장치, 네트워크, 소

프트웨어 혹은 다른 정보 기술 요소)에서 정의된 방법을 통한 데이터 교환이나 상호 작용을 의미한다(ISO

ITC-215).

JEUS는 서로 다른 프로토콜과 웹 서비스, JBuilder Bridge, JNLP, RMI-IIOP와 같은 기술들을 완벽히 지원

한다. 다음은 JEUS의 상호 운용을 위해 제공되는 모듈이다.

[표 1.7] 상호 운용 모듈

설명모듈

IIOP(Internet Inter-ORB Protocol) 프로토콜에서 수행되는 RMI 기술로서,

JAVA 플랫폼에서 CORBA의 분산 컴퓨팅 작업을 가능하게 한다.

RMI-IIOP

다른 웹 애플리케이션의 사용을 가능하게 하며, 웹 서비스 또한 지원한다.JEUS

TP-Monitor와 JEUS를 연계하는 게이트웨이이다.WebT

Legacy EIS에 있는 서비스를 클라이언트가 사용할 수 있도록 하는 어댑터 모

듈이다.

Host-Link

JEUS와 JEUS 클라이언트가 가상적으로 어떠한 Legacy의 EIS에 대한 상호

작용도 가능하게 한다.

Java EE Connector Archi

tecture

제1장 소개 9

1.5. Edition다음은 JEUS 6에 대한 Edition에 대한 설명이다.

[표 1.8] JEUS Edition

주요 특징Edition

- JEUS ServerJEUS Base Edition

- JEUS Web Server

- Servlet 2.5

- JSP 2.1

- JSF 1.2

- JSTL 1.2

- Security

- JDBC connection pooling

- XML 유틸리티

- JNDI

- JMX

- WebAdmin

- JEUS node clustering

- Base EditionJEUS Base Plus Edition

- Session clustering

- Base EditionJEUS Standard Edition

- EJB 3.0

- JMS 1.1

- 2 Phase-Commit 지원 JTA

- JCA 1.5

- SNMP

- Web service

- JEUS Standard EditionJEUS Enterprise Edition

- Session clustering

- JMS clustering

- JEUS Enterprise EditionJEUS Developer Edition

- 최초 기동(Booting)할 때부터 접속한 클라이언트 5개(HTTP)

10 JEUS 설치 및 시작하기

참고

제공되는 JEUS 안내서는 위의 표에서 언급된 모든 주제들을 포함하고 있다. 안내서에 기술된 기능

들이 실제로 사용 가능한지 여부를 이 표에서 확인하기 바란다. JEUS를 설치하면 Developer Edition

라이선스는 기본적으로 내장되어 있다.

제1장 소개 11

제2장 JEUS 환경

본 장에서는 JEUS에서 사용하는 관리 툴과 디렉터리 구조와 환경변수에 대해서 설명한다. 그리고 JEUS

와 관련 XML 설정 파일의 전반적인 내용에 대해서 소개한다.

2.1. 관리 툴다음은 JEUS에 접속해서 사용하는 툴에 대한 설명이다.

[표 2.1] JEUS 관리 툴

설명툴

HTML 기반의 관리 툴로, JEUS의 제어, 모니터링, 관리 등의 기능을 제공한다. 자

세한 내용은 "JEUS WebAdmin 안내서"를 참고한다.

WebAdmin

JEUS Manager를 실행하는 가장 기본적인 툴이다. 자세한 내용은 “JEUS Reference

Book”의 “제3장 jeus”를 참고한다.

jeus

콘솔 툴은 command prompt에서 JEUS를 컨트롤하는 데 사용된다. 자세한 내용은

“JEUS Reference Book”의 “4.2. jeusadmin”을 참고한다.

jeusadmin

참고

위에서 언급한 것 이외에도 EJB와 서블릿 엔진을 위한 툴이 존재한다. 자세한 내용은 해당 안내서를

참고한다.

제2장 JEUS 환경 13

2.2. 디렉터리 구조다음은 JEUS를 설치했을 때의 전체 디렉터리 구조이다.

[그림 2.1] JEUS 설치 후 디렉터리 구조

lib\

datasource\

webhome\

J

Legend:0I: binary or executable fileX: XML documentJ: JAR file

XSecurity configuration file

(XML)

0I

J

.dll, .so native library

System JARs

jeus.jar

system\

JDBC Drivers

schemas\

JEUS XML Schema

application\

endorsed\

shared\

client\

admin_home\

app_home\

autodeploy\

system_app\

uddi\

<node_name>_

<container_name>\

J Application archive filesworkspace\

samples\

license\

TM\

JeusSystem

logs\

webserver\

security

DOMAIN_NAME

security

Engine configuration file (XML)X

<node name>_<engine type>

_<engine name>\

X JEUSMain.xml

<nodename>\

config\

0I Applications launch scripts

bin\

JEUS_HOME\

X

J

다음은 디렉터리와 파일의 설명이다.

JEUS_HOME

JEUS의 최상위 디렉터리로, 실제 디렉터리 이름과 위치는 설치할 때 결정된다.

예) c:\jeus

14 JEUS 설치 및 시작하기

bin

jeus, jeusadmin과 같은 실행 파일이나 스크립트가 모여있다.

config

서버 설정이 저장되는 서브 디렉터리를 가지고 있다.

● config\<nodename>

이름이 <nodename>인 설정 파일이 위치한다. <nodename>은 JEUS 가 설치된 서버의 이름(일반

적으로 hostname)이다. 만약 현재 JEUS가 백업 노드로 작동되도록 설정되었다면 백업하는 노드의

<nodename> 디렉터리가 존재해야 한다.

JEUS Manager의 설정 파일은 JEUSMain.xml이며, 이 디렉터리에 존재한다. <nodename>이 jeus

일 때 "c:\jeus\config\jeus”가 된다.

● config\<nodename>\<nodename>_<enginetype>_<enginename>

엔진별로 설정 파일을 가지고 있다. <enginetype>은 ejb, jms, servlet 셋 중 하나이며, <enginename>

은 JEUSMain.xml에서 설정한 이름이다.

“c:\jeus\config\jeus\jeus_servlet_Engine1”일 때, <nodename>은 'jeus', <enginetype>은 'servlet'이

며, 사용자가 지정하는 <enginename>은 'Engine1'이 된다.

● config\<nodename>\security

해당 노드에서 사용하는 security configuration이 들어가 있다. 자세한 내용은 "JEUS Security 안내

서"를 참조한다.

webserver

JEUS가 설치될 때 JEUS 웹 서버가 설치되는 디렉터리이다. 자세한 내용은 "JEUS Web Service 안내

서"를 참조한다.

license

JEUS 라이선스 파일을 가지고 있다. 라이선스 파일은 JEUS가 실행되기 위해서 반드시 필요한 파일

이다.

logs

시스템 로그가 기록된다.

설명하위 디렉터리

트랜잭션 매니저의 로그 정보를 기록한다.logs\TM

node, engine container, engine들이 생성하는 로그를 기록한다.logs\JeusSystem

samples

JEUS의 예제들이 있다.

lib

JEUS가 기동될 때, 이 디렉터리의 모든 서브 디렉터리를 스캐닝해서 ".jar" 파일이나 ".zip" 파일을 클

래스 패스로 추가한다. 서브 디렉터리 스캐닝 순서는 system → application → datasource 순이다.

제2장 JEUS 환경 15

설명하위 디렉터리

사용자 애플리케이션에서 사용하는 클래스 파일이 위치한다. 이 디렉터리의

모든 '.zip' 파일이나 '.jar' 파일, 디렉터리 형태의 일반 클래스들은 클래스 패

스로 추가된다. 클래스 파일은 '.jar'나 '.zip' 파일보다 먼저 읽힌다.

lib\application

JEUS가 사용하는 라이브러리가 있는 디렉터리이므로 사용자는 이 디렉터리

를 수정해서는 안 된다. '.so' 나 '.dll'같은 Native Driver(예를 들면, Connector

lib\system

Resource Adapter에서 필요한 드라이버 등…)는 이 디렉터리에 위치해야 한

다. 또 여기에는 JEUS의 클래스인 jeus.jar가 있다.

JDBC 드라이버의 '.jar' 파일과 설정 파일이 위치한다.lib\datasource

XML 설정 파일을 위한 XML Schema 파일이 위치한다.lib\schemas

Java 런타임이 기본 JDK 클래스들에 우선하여 읽어들일 클래스들이 JAR 파

일 형태로 위치한다.

lib\endorsed

애플리케이션 간에 공유되는 라이브러리들이 위치한다.lib\shared

Standalone과 애플릿 등의 클라이언트가 사용하는 라이브러리가 위치한다.lib\client

webhome

JavaEE 애플리케이션(웹 애플리케이션, EJB)이 Deploy되는 홈 디렉터리이다.

설명하위 디렉터리

WebAdmin에서 사용되는 서블릿/JSP 파일이 있다.webhome\admin_home

애플리케이션의 기본 경로이다.webhome\app_home

AutoDeploy할 애플리케이션의 기본 경로이다.webhome\autodeploy

<node_name>_<container_name>에 해당하는 엔진 컨테이너에서

사용되는 애플리케이션이 존재한다.

webhome\<node_name>_<con

tainer_name>

workspace

JEUS가 동작하면서 필요한 작업을 하는 임시 디렉터리로 이 디렉터리를 수정해서는 안 된다.

2.3. 환경변수환경변수는 모두 "JEUS_HOM\bin\jeus.properties"에서 설정되어 있으며, JEUS_HOME\bin 디렉터리의

모든 스크립트에서 사용된다.

다음은 JEUS에서 사용하는 환경변수이다.

[표 2.2] JEUS 환경변수

내용환경변수

JEUS가 설치된 홈 디렉터리로, 필수 사항이다.JEUS_HOME

예 ) JEUS_HOME=C:\Jeus

16 JEUS 설치 및 시작하기

내용환경변수

JEUS Manager로 접속하기 위한 TCP/IP 포트이며, 다른 기능을 위한 포

트를 계산하는 데 기본이 된다.(기본값 : 9736)

JEUS_BASEPORT

예) JEUS_BASEPORT=9736

JEUS 웹 서버의 홈 디렉터리이다.(기본값 : C:\Jeus\webserver)JEUS_WSDIR

예) JEUS_WSDIR = C:\Jeus\webserver

JEUS 웹 서버인 내장 WebtoB가 IPv6를 사용할지 여부를 설정한다.WEBTOB_PREFER_IPV6

(Y/y/1 : IPv6 사용. 환경변수가 없으면 IPv4 사용)

예) WEBTOB_PREFER_IPV6=Y

JDK의 홈 디렉터리이다.JAVA_HOME

예) JAVA_HOME = c:\jdk1.5

해당 변수는 필요한 경우 수정해서 사용한다. 단, XML 설정 파일에서는 이들 환경변수를 사용할 수 없다.

모든 환경변수는 설치할 때 기본값으로 정해진다. 대부분의 경우 설정된 값을 그대로 사용하면 된다.

참고

환경변수를 변경하는 방법은 OS에 따라 다르므로, 이에 대해서는 각 OS 안내서를 참고한다.

2.4. 환경설정 파일

2.4.1. XML 환경설정 파일

JEUS는 환경설정을 위해서 각각 고유의 XML 포맷을 사용하며, 직접 수정하거나 툴을 사용해서 수정할

수 있다. 다음은 JEUS의 XML 설정 파일과 내용, 위치를 정리한 내용이다.

● JEUSMain.xml (jeus-main.xsd)

JEUS_HOME\config\<nodename>\위치

JEUS Manager와 노드를 관리하는 기본 설정 파일이다.목적

JEUS Server 안내서참고 안내서

● WEBMain.xml (web-main.xsd)

JEUS_HOME\config\<nodename>\<Servlet Enginedir>\위치

서블릿/JSP 엔진 설정 파일이다.설명

JEUS Web Container 안내서참고 안내서

제2장 JEUS 환경 17

● jeus-web-dd.xml (jeus-web-dd.xsd)

웹 애플리케이션 Archive의 WEB-INF위치

JEUS 웹 애플리케이션(Servlet app) Deployment Descriptors 파일이다.설명

JEUS Web Container 안내서참고 안내서

● EJBMain.xml (ejb-main.xsd)

JEUS_HOME\config\<nodename>\<EJB Enginedir>\위치

EJB 엔진 설정 파일이다.설명

JEUS EJB 안내서참고 안내서

● jeus-ejb-dd.xml (jeus-ejb-dd.xsd)

EJB 애플리케이션 Archive의 META-INF위치

JEUS EJB Module Deployment Descriptors 파일이다.설명

JEUS EJB 안내서참고 안내서

● jeus-client-dd.xml (jeus-client-dd.xsd)

클라이언트 애플리케이션 Archive의 WEB-INF위치

애플리케이션 클라이언트 Deployment Descriptor 파일이다.설명

JEUS 애플리케이션 안내서참고 안내서

● jeus-connector-dd.xml (jeus-connector-dd.xsd)

리소스 어댑터 Archive의 META-INF위치

리소스 어댑터 Deployment Descriptor 파일이다.설명

JEUS JCA 안내서참고 안내서

● JMSMain.xml (jms-main.xsd)

JEUS_HOME\config\<nodename>\<JMS Enginedir>\위치

JMS 엔진 설정 파일이다.설명

JEUS MQ 안내서참고 안내서

● policies.xml (policies.xsd)

JEUS_HOME\config\<nodename>\security\<domainname>\위치

JEUS Security 정책을 설정한 파일이다.설명

18 JEUS 설치 및 시작하기

JEUS Security 안내서참고 안내서

● accounts.xml (accounts.xsd)

JEUS_HOME\config\<nodename>\security\<domainname>\위치

JEUS Security 계정을 설정한 파일이다.설명

JEUS Security 안내서참고 안내서

● jeus-web-dd.xml (jeus-web-dd.xsd), jeus-ejb-dd.xml (jeus-ejb-dd.xsd), jeus-client-dd.xml (jeus-client-

dd.xsd)

Webservice client archive의 META-INF위치

웹 서비스 클라이언트 정보를 설정한 파일이다.설명

JEUS Web Service 안내서참고 안내서

● jeus-webservices-config.xml (jeus-webservices-config.xsd)

Webservice client archive의 META-INF위치

웹 서비스 클라이언트 Ant Task에서 사용하는 설정 파일이다.설명

JEUS Web Service 안내서참고 안내서

참고

1. Java EE의 표준 Descriptor 파일인 “web.xml”이나 “ejb-jar.xml” 파일도 사용된다. 각 파일은 해당

Java EE 스펙을 참조한다.

2. 모든 XML Schema 파일은 JEUS_HOME\lib\schemas\jeus\에 위치한다.

제2장 JEUS 환경 19

제3장 JEUS 안내서 구성

본 장에서는 안내서를 어떻게 활용하면 좋은지와 안내서에서 사용된 약자들을 소개한다. JEUS 안내서에

서 필요한 정보를 얻기 위해서는 본 장을 주의 깊게 살펴보길 바란다.

3.1. 개요JEUS 안내서는 다음과 같은 3가지 방법으로 구할 수 있다.

● 소프트웨어와 함께 제공되는 html 문서

● JEUS Installer CD에서 제공되는 PDF 파일

PDF 파일을 보려면 Adobe Acrobat Reader나 혹은 다른 PDF를 지원하는 소프트웨어가 필요하다.

http://www.adobe.com/products/acrobat/readstep.html을 방문하면 Adobe Acrobat Reader를 다운로드

받을 수 있다.

● TmaxSoft의 TechNet 사이트에서 업데이트된 소프트웨어나 안내서

TechNet 주소는 http://technet.tmax.co.kr/kr/index.do이다.

다음은 JEUS 안내서에 대해 기본적으로 알아야 하는 4가지 사항이다.

● JEUS 안내서는 Java와 Java EE 기술에 대한 경험을 가진 Java EE 전문가를 위해 작성되었다.

● 안내서는 개별적이고 연관성을 배제한 문서들로 구성되어 있다.

● JEUS 안내서 문서는 몇 가지의 예외를 제외하고는 기본적으로 표준적인 문서 양식에 따라 구성되어 있

다.

● 안내서는 매우 다양한 방식으로 구성되어 있다.

참고

안내서의 내용을 이해하기 위해서는 Java와 Java EE 기술에 대한 지식이 필요하다. 그러한 지식은

서점에 있는 다양한 서적들로부터 얻길 바란다. 또한, Java 관련 웹 사이트인 http://www.ora

cle.com/technetwork/java/index.html에서 유용한 온라인 문서와 스펙, 자습서 등을 얻을 수 있다.

JEUS 안내서에서 Java EE 스펙에 서술되어 있는 모든 내용에 대해 다루는 것은 어렵다. 현재는 단

지 JEUS에 특화된 정보들에 대해서만 다룬다.

3.2. 안내서의 구성다음의 [그림 3.1]은 JEUS 안내서의 구성을 나타낸다. 화살표는 JEUS에 익숙하지 못한 사용자를 위해 읽

어야 할 우선순위를 나타낸 것이다. JEUS 안내서는 총 18권으로 구성되어 있다.

제3장 JEUS 안내서 구성 21

[그림 3.1] JEUS 안내서 구성

각각의 안내서에 대한 내용들은 다음의 목록에 명시되어 있다. 특정한 주제에 대해서 위치를 빨리 찾고 싶

다면 다음의 목록을 참조한다.

● JEUS 6 릴리즈 노트

– JEUS의 새로운 기능

– 이전 버전의 업그레이드 방법

● JEUS 소개

JEUS 6 서버에 대한 전반적인 소개와, JEUS의 아키텍처 및 각 구성 요소들에 대해 설명한다.

– JEUS6 서버에 대한 소개

– JEUS 환경

– JEUS 안내서의 구성

● JEUS 설치 및 시작하기

– Windows와 UNIX에서 Java 설치

– Windows와 UNIX에서 JEUS 설치

– 예제 애플리케이션에 대한 설명 포함(QuickStart)

– JEUS 시스템 입문서

22 JEUS 설치 및 시작하기

– EJB 입문서

– 서블릿/JSP 입문서

● JEUS WebAdmin 안내서

JEUS의 웹 관리 툴로서, 일반 사용자부터 관리자까지 반드시 읽어야 한다.

– JEUS의 설정 및 제어, 모니터링

– JEUS 클러스터링

– Java EE Application Deployment

– 리소스 설정 및 관리

● JEUS Server 안내서

JEUS 관리 차원의 주요 안내서이며, JEUS 시스템 관리자들이 가장 많이 읽어야 하는 부분이다.

– JEUS 시스템과 서버에 대한 개요

– JEUS Manager

– JEUS JNDI Naming Server와 JNDI 구성

– External Resource: JDBC/Data Source 커넥션 풀, URL Source, Mailing Source, Tmax와 IBM MQ

Source와 Java EE Connector

– JDBC Connection Pool과 Connector

– JEUS 노드

– 세션 서버

– JEUS 엔진 컨테이너

– JEUS 트랜잭션 매니저

– JEUS 엔진: EJB, 웹 컨테이너, JMS, 웹 서버 엔진

– JEUS 클러스터링

– Java EE 애플리케이션의 Deploy

● JEUS EJB 안내서

JEUS EJB 엔진과 EJB 모듈을 Deploy하는 것에 대해 주로 설명한다.

– JEUS EJB에 대한 개요

– JEUS EJB 엔진

– EJB 모듈들

– 일반적인 EJB(각각의 Bean들에 대한 구성)

– JEUS EJB에 대한 보안

제3장 JEUS 안내서 구성 23

– JEUS EJB에 대한 보안의 상호작용

– JEUS EJB 클러스터링

– 세션 EJB

– Entity EJB

– MDB EJB

– EJB 클라이언트

● JEUS Web Container 안내서

JEUS 웹 컨테이너의 관리를 위한 안내서이며, Java EE WAR Archive와 서블릿/JSP의 관리와 Deploy

하는 방법에 대해 설명한다.

– JEUS 웹에 대한 개요

– JEUS 웹 컨테이너

– JEUS 웹 컨텍스트 그룹

– 웹 서버와의 연결과 클러스터링(WebtoB, Apache and built-in HTTP server connections and clusters)

– 클러스터된 환경에서의 세션 추적

– 웹 컨텍스트(웹 애플리케이션/WAR 파일들)

– 가상 호스팅

● JEUS MQ 안내서

JEUS 메시지 기반 시스템(JMS)을 설명한다.

– JEUS JMS의 개요

– JMS 엔진에 대한 환경설정 그리고, 모니터링과 제어

– JEUS에서의 JMS 프로그래밍

● JEUS Web Service 안내서

JEUS 내의 웹 서비스에 대해 설명한다.

– JEUS 웹 서비스에 대한 개요

– 웹 서비스 back-end 생성

– 웹 서비스 back-end를 사용하는 클라이언트 구현하기

– 데이터 타입과 JEUS 웹 서비스

– 웹 서비스에 관련된 Ant

– UDDI 이용

– 웹 서비스 보안

24 JEUS 설치 및 시작하기

● JEUS JMX 안내서

JMX를 사용해서 JEUS를 관리하기 위한 안내서이다.

– JEUS JMX Manager 설정

– JMX 애플리케이션 개발

– JMX API 레퍼런스

● JEUS SNMP 안내서

산업 표준인 SNMP 프로토콜을 이용한 JEUS 모니터링에 대해 설명한다.

– JEUS SNMP Agent의 개요

– SNMP Agent의 구성

– JEUS SNMP 프로그래밍

– JEUS SNMP MIB

● JEUS JCA 안내서

JEUS와 legacy 시스템과 연결하기 위한 Connector에 대한 설명한다.

– Connector에 대한 내용

– Connector 패키징

– Connector 사용과 튜닝

● JEUS JPA 안내서

JEUS에 통합된 TopLink Essential을 사용해서 어떻게 사용되는지에 대해서 설명한다.

– Java Persistence API 소개

– 프로바이더 설정

– JEUS 설정

● JEUS Scheduler 안내서

JEUS의 Scheduler 기능에 대한 안내서이다.

– Scheduler Service 설정

– Scheduler Service 프로그래밍

● JEUS Application & Deployment 안내서

Java EE 애플리케이션을 JEUS에 Deploy하기 위한 여러 가지 방법과 툴에 대해 설명한다.

– Deployment 개요

– Deployment 관련 디렉터리

– Deployment Tool과 API

제3장 JEUS 안내서 구성 25

– 2-phase deployment

– Java EE Application Deployment Descriptor 설명

● JEUS Client Application 안내서

Java EE 클라이언트와 JEUS 사이의 상호 운용에 대해 설명한다.

– Java EE Java 애플리케이션 클라이언트

– 애플릿 클라이언트

– JNLP 클라이언트

– JEUS CAS: COM 애플리케이션과 JEUS의 상호 운용을 위한 것

● JEUS Security 안내서

JEUS에서 Security System을 어떻게 설정 운영할 것이며, Security 관련 프로그래밍에 대한 설명한다.

– Security 시스템의 개요와 설정

– 애플리케이션과 모듈의 Security 설정

– Security 시스템의 운영과 튜닝

– Security API를 이용한 프로그래밍

– Custom Security 서비스 개발하기

– JACC 제공자 사용하기

● JEUS Reference Book

JEUS를 사용하는 데 도움이 되는 Reference를 모아둔 안내서이다.

– 시스템 프로퍼티 내용

– 콘솔 명령어 사용법

– Ant Tasks 사용법

– JEUS에서 사용되는 API 모음

참고

위의 목록에서 보았듯이, JEUS Server 안내서는 그 범위가 매우 방대하다. JEUS Security, Naming

그리고 트랜잭션 매니저와 같은 서로 다른 많은 주제들을 포함하고 있다. 이러한 구성의 이유는 비록

주제들이 전혀 다른 것이라 할지라도 이러한 구성 요소들이 모두 동일한 환경설정 파일에서 구성되

고 동일한 JVM에서 수행되기 때문이다. 또한 각각의 안내서들의 수를 최소한으로 유지하기 위해서

이다.

26 JEUS 설치 및 시작하기

Part II. JEUS 설치하기

Part II. JEUS 설치하기 27

제4장 설치 개요 및 준비사항

본 장에서는 설치 과정에 대한 기본적인 설명과 설치 전에 준비할 시스템 환경 및 필요한 JDK 환경 구성

에 대해서 설명한다.

4.1. 개요Microsoft Windows와 UNIX 환경에서 JEUS를 쉽게 설치하기 위해 JEUS 설치 툴은 그래픽 사용자 인터페

이스(GUI)를 지원한다. 커맨드 모드가 익숙한 UNIX/LINUX 환경에서는 콘솔 모드에서 설치가 가능하다.

기본적으로 콘솔 모드로 설치가 진행되며, GUI형태로 진행하려면 –i GUI 옵션을 넣어서 실행한다.

설치 파일은 다음의 작업을 진행한다.

● JEUS 라이선스 계약을 한다.

설치를 진행하려면 반드시 동의하여야 하므로 주의 깊게 읽어 보길 바란다.

● JEUS 설치 파일은 Full Install, Typical, Advanced Mode 등 다양한 Install set을 제공한다. 설치 파일에

Java 2 JDK 버전 1.5.x 포함한다.

– Full Install

JEUS 예제인 Samples와 JEUS 관련 문서 파일이 포함된 JEUS Full 버전을 설치한다.

Java 2 Platform Enterprise Edition Compatibility Test(CTS)를 통과한 버전에 JEUS의 고유 기능이 추

가된 버전을 설치한다.

– Typical

JEUS 예제인 Samples가 제외된, JEUS 관련 문서 파일과 JEUS Core 파일을 설치한다.

Java 2 Platform Enterprise Edition Compatibility Test (CTS)를 통과한 버전에 JEUS의 고유 기능이

추가된 버전을 설치한다.

– Advanced Mode

수동 설치 가능한 Manual Configuration Option을 지원한다.

Manual Configuration Option에는 관리자가 AutoDeploy 경로와 JEUS_BASEPORT를 직접 지정할

수 있다(UNIX/LINUX 콘솔 모드에선 지원하지 않음).

● JEUS 구성 파일 및 디렉터리를 배치한다.

● JEUS 서블릿 엔진의 Listener인 JEUS 웹 서버를 설치한다.

● JEUS의 단축 아이콘을 생성한다(Windows 에서).

● JEUS의 환경변수를 설정한다.

● NT서비스로 JEUS를 등록한다(Windows 에서).

제4장 설치 개요 및 준비사항 29

● JEUS의 제거(Uninstall) 툴을 생성한다.

4.2. 시스템 요구사항다음은 JEUS를 설치하기 위한 시스템(H/W, S/W) 요구사항이다.

● 시스템 요구사항

JEUS 설치를 위해서 필요한 H/W, S/W는 다음과 같다.

[표 4.1] 시스템 요구사항

설치 시 필요 환경플랫폼

JDK 5.0 Update 4(1.5.0_04) 이상Windows 2003/XP

300M이상의 하드디스크 여유 공간Windows 2000

Windows NT

Windows Vista

JDK 5.0 Update 4(1.5.0_04) 이상Solaris, HP-UX, AIX, Linux

300M이상의 하드디스크 여유 공간

● 플랫폼 지원 환경

플랫폼별 JEUS동작에 필요한 표준 하드웨어 지원 환경은 다음과 같다.

[표 4.2] 플랫폼 지원 환경

JDK VersionHard Disc SpaceRAM MemoryCPUOS Version

JDK 1.5.0_04 이상20 Gigabytes1 GigabytesUltraSPARCSolaris 8, 9, 10

JDK 1.5.0_04 이상20 Gigabytes512 MegabytesHP-PA seriesHP-UX 11.0

JDK 1.5.0_04 이상20 Gigabytes512 MegabytesRS6000AIX 5L, 6L, 7L

JDK 1.5.0_04 이상20 Gigabytes512 MegabytesINTEL Pentium 3Linux 7.x 이상

1GHZ 이상Kernel 2.4이상

JDK 1.5.0_04 이상20 Gigabytes512 MegabytesINTEL Pentium 3MS Windows NT 이상

1GHZ 이상

30 JEUS 설치 및 시작하기

4.3. 설치 순서다음은 UNIX와 Windows에서 JEUS 설치 순서이다. 전체적인 설치 순서는 동일하고 일부 과정이 차이가

있으므로 자세한 내용은 각 절에서 확인한다.

1. JDK 5 설치한다.

2. GUI 모드에서 JEUS를 설치(파일 복사)한다.

3. 환경변수를 설정하고 검증한다.

4. 설치된 내용을 검증(동작 확인)한다.

5. Windows의 경우 선택적으로 JEUS의 Windows 서비스 등록과 해제한다.

다음은 JEUS 설치할 때 작업과 선택사항을 보여준다.

[그림 4.1] JEUS 설치 순서

위 그림의 작업 상자는 작업을 나타낸다. 자세한 설명은 각 절의 설명을 참고한다.

● UNIX에서 GUI 모드를 이용한 JEUS 설치/제거는 “5.2. GUI 모드에서 설치”, “5.5. GUI 모드에서 제거”를

참조한다.

● UNIX에서 콘솔 모드를 이용한 JEUS 설치/제거는 “5.3. 콘솔 모드에서 설치”, “5.6. 콘솔 모드에서 제거”

를 참조한다.

● Windows에서 GUI 설치 툴을 이용한 JEUS 설치/제거는 “제6장 Windows에서 설치 및 제거”를 참조한

다.

● “Appendix A. 플랫폼 별 JDK 설치”는 LINUX, Solaris, AIX, HP-UX 등의 특정 플랫폼에서 추가적인 설치

정보를 제공한다.

제4장 설치 개요 및 준비사항 31

4.4. Java 2 JDK 설치JEUS를 사용하기 위해서는 Java 2 JDK(JavaSE Developement Kit)가 설치되어 있어야 한다. 다음은 UNIX

와 Windows에서 JDK5의 설치에 대한 설명이다.

UNIX에서 JDK 5 설치

UNIX 용 JavaTM 2 JDK 5 Standard Edition은 다음에서 다운받을 수 있다.

http://www.oracle.com/technetwork/java/javase/downloads/index-jdk5-jsp-142662.html

자세한 내용은 http://java.sun.com/j2se/1.5.0/install-linux.html을 참고한다. 플랫폼별 JDK 설치에 대한 자

세한 내용은 “Appendix A. 플랫폼 별 JDK 설치”를 참고한다.

Windows에서 JDK 5 설치

Windows 용 JavaTM 2 JDK 5 Standard Edition은 다음에서 다운받을 수 있다.

http://www.oracle.com/technetwork/java/javase/downloads/index-jdk5-jsp-142662.html

자세한 내용은 http://java.sun.com/j2se/1.5.0/install-windows.html를 참고한다.

JEUS 설치 전에 JDK가 설치되었는지 확인한다. 설치 후에는 Windows 환경변수 PATH에 설치된 JDK의

‘bin’ 디렉터리를 추가한다.

4.5. JEUS 라이선스 정책JEUS를 사용하기 위해서는 TmaxSoft에서 발급하는 라이선스-키(License-Key) 파일이 있어야 한다. Installer

로 설치한 JEUS 에는 기본적으로 개발자 라이선스(Developer License)가 포함되어 있다. 라이선스 파일

은 JEUS_HOME\license에 ‘license’ 라는 파일로 존재한다.

라이선스의 에디션에는 Base, Base Plus, Standard, Enterprise,S Developer 라이선스가 있으며 기능 및

사용 기한에 차이가 있다.

라이선스를 업그레이드하거나 정식 라이선스를 취득하기 위해서는 TmaxSoft 영업대표(Sales Represen

tative)를 통하거나 직접 TmaxSoft에 문의하여야 한다. 라이선스 파일을 사용하기 위해서는

JEUS_HOME\license 디렉터리 아래에 라이선스-키(License-Key) 파일을 license 라는 이름으로 복사한

다.

참고

라이선스 파일명이 license가 아닌 경우 "license"로 변경하여야 한다.

32 JEUS 설치 및 시작하기

제5장 UNIX에서 설치 및 제거

본 장에서는 UNIX에서 JEUS를 설치하고 제거하는 과정에 대해서 설명한다.

5.1. 개요UNIX 환경에서 JEUS 설치는 GUI 모드나 콘솔 모드를 선택이 가능하다.

JEUS 설치는 다음의 과정으로 진행된다.

1. JDK 5 설치

2. JEUS 설치(파일 복사)

3. 설치 확인

- 기동 확인

- 환경변수 설정과 검증

JEUS 제거도 GUI 모드나 콘솔 모드를 통해 JEUS 제거가 가능하다.

5.2. GUI 모드에서 설치UNIX 환경에서 GUI 모드에서 JEUS 설치하는 과정에 대해서 설명한다. GUI 설치가 가능하지 않다면 “5.3.

콘솔 모드에서 설치”를 참고한다.

LINUX, Solaris, HP, AIX에서의 JEUS 설치 과정은 동일하며, 설치할 때 화면 구성은 Windows 설치할 때

와 유사하다. 그러나 UNIX에서 GUI 설치 툴을 이용하기 위해서는 Java 기반의 GUI 환경을 지원하는 콘솔

혹은 터미널이 설치되어 있어야 한다.

GUI 모드에서 JEUS 설치 과정은 다음과 같다.

1. CD를 CD-ROM 장치에 넣고 마운트(mount)한다.

2. 명령 라인에서 다음을 입력한 후에 <ENTER>키를 누른다.

jeus60-unix-generic.bin –i GUI

만약 다른 위치에서 실행한다면 jeus60-unix-generic.bin 파일 실행이 가능하도록 확인하고 콘솔 프롬

프트를 실행한 후 다음을 실행한다.

chmod u+x jeus60-unix-generic.bin

제5장 UNIX에서 설치 및 제거 33

3. JEUS 설치 툴의 초기 화면이 나타난다. 진행 상태가 100%가 될 때까지 기다린다.

[그림 5.1] 설치 툴의 초기화면

4. 다음과 같은 소개 화면이 표시된다.

[그림 5.2] 소개 화면

5. JEUS 소개 내용을 읽고 [Next] 버튼을 클릭한다. 설치를 종료 하려면 [Cancel] 버튼을 클릭한다.

34 JEUS 설치 및 시작하기

6. 라이선스 준수 화면에서 라이선스 준수 내용을 읽고 “I accept the terms of …”를 선택한 후 [Next] 버

튼을 클릭한다.

[그림 5.3] 라이선스 준수 화면

7. 플랫폼 목록에서 설치 할 플랫폼을 선택한다.

[그림 5.4] 플랫폼 선택 화면

8. 설치 디렉터리 선택 화면이 나타난다. JEUS 바이너리와 기타 다른 파일들은 설정한 경로의 디렉터리

의 하위에 설치된다.

[Choose…]를 클릭하면 다른 설치 폴더를 선택할 수 있고 [Restore Default Folder]를 클릭하면 초기

기본 폴더로 복귀한다. 가능하면 기본 폴더를 그대로 사용하길 권장한다(예: “/home/jeus”). 설치할 디

렉터리를 선택하고 [Next]버튼을 클릭한다.

제5장 UNIX에서 설치 및 제거 35

[그림 5.5] 설치 디렉터리 선택 화면

9. Install Set 선택 화면이 나타난다. 설치 옵션에서 Full Install, Typical, Advanced Mode 중 하나를 선택

한다.

● Full Install : JEUS 예제인 Samples와 JEUS 관련 문서 파일이 포함된 JEUS Full 버전을 설치한다.

● Typical : JEUS 예제인 Samples가 제외된 JEUS 관련 문서 파일과 JEUS Core 파일을 설치한다.

● Advanced Mode : Manual Configuration Option를 지원한다. 관리자가 autodeploy 경로와

JEUS_BASEPORT를 직접 지정할 수 있다.

[그림 5.6] Install Set 선택 화면

36 JEUS 설치 및 시작하기

10. JDK 설치 디렉터리 선택 화면이 나타난다. 초기에 설치된 Java 2 JDK 전체 경로를 설정한다(예:

“/usr/jdk1.5”).

설치 프로그램은 설치된 JDK 경로를 제안하지만 경우에 따라 변경할 수 있다. [Choose…]를 클릭하면

다른 설치 폴더를 선택할 수 있고 [Restore Default Folder]를 클릭하면 초기 기본 폴더로 복귀한다.

[그림 5.7] JDK 설치 디렉터리 선택 화면

참고

JEUS 설치 후에 Java 2 JDK를 설치하려면 JDK 설치 경로를 포함하는 JAVA_HOME 환경변수를 수

정해야 한다. 그러므로 JDK를 설치 후 JEUS 설치를 권장한다.

11.패스워드 입력 화면이 나타난다. 화면에서 JEUS 관리자의 패스워드를 입력한다. 패스워드는 “adminis

trator” 관리자 계정으로 할당된다.

[그림 5.8] 패스워드 입력 화면

제5장 UNIX에서 설치 및 제거 37

12.지금 단계까지 설정한 설치 정보를 확인한 후 [Install] 버튼을 클릭해서 설치를 시작한다.

[그림 5.9] 설치 정보 확인

13.설치가 진행되는 것을 확인한다.

[그림 5.10] 설치 진행 화면

38 JEUS 설치 및 시작하기

14.설치 종료를 확인한다.

[그림 5.11] 설치 종료

5.3. 콘솔 모드에서 설치본 절에서는 콘솔 모드(명령 라인) UNIX/LINUX 환경에서 JEUS를 설치하는 방법에 대해서 설명한다. 콘

솔 모드에서 설치를 하기 위해서 Console Installer를 실행해야 한다.

참고

Console Installer는 설치 과정에서 값을 입력 받을 때 기본값을 제시한다. 셸은 이전 단계로 돌아가

는 것이 기본적으로 불가능하므로 설치가 완료된 후에 값을 변경하면 된다. 하지만 어느 단계까지는

<back>, <ENTER> 입력을 통해 전 단계로 이동이 가능하다

다음의 하위 절은 텍스트 기반 셸을 실행하는 과정에 대한 설명이다.

1. JEUS 설치 CD를 넣고 마운트(mount)한다. CD의 jeus60-unix-generic.bin 파일이 있는 곳으로 이동

한다.

2. 다른 곳에 있는 설치 Console Installer가 실행이 가능하도록 하려면 jeus60-unix-generic.bin 파일의

실행 권한을 부여한다.

chmod u+x jeus60-unix-generic.bin

3. 콘솔에서 jeus60-unix-generic.bin을 실행한다(“./jeus60-unix-generic.bin”입력 후 <ENTER>키를 누른

다).

[jeususer@matrix jeus]$ ./jeus60-unix-generic.bin

Preparing to install...

Extracting the JRE from the installer archive...

제5장 UNIX에서 설치 및 제거 39

Unpacking the JRE...

Extracting the installation resources from the installer archive...

Configuring the installer for this system's environment...

Launching installer...

Preparing CONSOLE Mode Installation...

4. JEUS 라이선스 준수 화면이 나타난다.

===========================================================

License Agreement

-----------------

Installation and use of JEUS6 requires acceptance of the

following License

Agreement:

TmaxSoft Co., Ltd. (hereafter, TmaxSoft) End-User License

Agreement

Jeus

This is a legal agreement between you (either an individual or an company) and T

max Soft, Incorporated. By opening the sealed software package and/or by using

the software, you agree to be bound by the terms of this agreement.

TmaxSoft License

1. Grant of License: This TmaxSoft License Agreement ("License") permits you

to use one copy of the TmaxSoft product Jeus, on any single computer, provided

the software is in use on only one computer at any one time. If this package is

a license pack, you may make and use additional copies of the software up to th

e number of licensed copies authorized. If you have multiple licenses for the s

oftware, then at any time you may have as many copies of the software in use as

you have licenses.

The software is "in use" on a computer when it is loaded into the temporary me

mory (i.e., RAM) or installed into the permanent memory (e.g., hard disk, CD-ROM

, or other storage devices) of that computer, except that a copy installed on a

network server for the sole purpose of distribution to other computers is not "

in use". If the anticipated number of users of the software will exceed the num

ber of applicable licenses, then you must have a reasonable mechanism or process

in place to ensure that the number of persons using the

5. JEUS 라이선스 준수에 대한 다음 정보를 보기 위하여 <ENTER> 키를 누른다.

PRESS <ENTER> TO CONTINUE:

software concurrently does not exceed the number of licenses.

40 JEUS 설치 및 시작하기

2. Copyright: The software (including any images, "applets," photographs, anim

ations, video, audio, music and text incorporated into the software) is owned by

TmaxSoft or its suppliers and international treaty provisions.

Therefore, you must treat the software like any other copyrighted materials (e.g

., a book or musical recording) except that you may either (a) make one copy of

the software solely for backup or archival purposes, or (b) transfer the softwar

e to a single hard disk provided you keep the original solely for backup or arch

ival purposes. You may not copy the printed materials accompanying the software

, nor print copies of any user documentation provided in "online" or electronic

form.

3. Other restrictions: This license is your proof of license to exercise the ri

ghts granted herein and must be retained by you. You may not rent, lease, or tra

nsfer your rights under this license on a permanent basis provided you transfer

this license, the software, and all accompanying printed materials, retain no co

pies, and the recipient agrees to the terms of this license. You ay not reverse

engine, decompile, or disassemble the software, except to the extent that the fo

regoing restriction is expressly prohibited by applicable law.

6. 라이선스 동의 여부를 답한다.

동의를 하면 ‘y’를 입력 후 <ENTER> 키를 누르고, 아니면 ‘n’을 입력 후 <ENTER> 키를 누른다.

PRESS <ENTER> TO CONTINUE:

DO YOU ACCEPT THE TERMS OF THIS LICENSE AGREEMENT? (Y/N): y

7. 플랫폼 목록에서 설치할 플랫폼을 선택한다.

=================================================================

Choose Platform

---------------

Choose current system ( platform-architecture )

1)HP-UX PA-RISC

2)HP-UX ITANIUM

3)Solaris Ultra-Sparc

4)Solaris x86

5)AIX 5.x, 6.x PowerPC

6)Linux i386

7)Linux ITANIUM

8)Linux x86_64

Quit) Quit Installer

Choose Current System (DEFAULT: 8):

제5장 UNIX에서 설치 및 제거 41

8. 설치 디렉터리를 선택한다.

기본적으로 제공되는 값을 사용하려면 <ENTER>를 누르고, 디렉터리 변경을 원하면 설치 경로를 입력

한다.

===========================================================

Choose Install Folder

---------------------

Where would you like to install?

Default Install Folder: /home/jeus

ENTER AN ABSOLUTE PATH, OR PRESS <ENTER> TO ACCEPT THE DEFAULT :

9. Full Install, Typical 설치 중 하나를 선택한다.

● Full Install : JEUS 예제인 Samples와 JEUS 관련 문서 파일이 포함된 JEUS Full 버전을 설치한다.

● Typical : Samples을 제외한 JEUS 관련 문서 파일과 JEUS Core 파일을 적용하여 JEUS 필수 파일들

을 설치한다.

참고

콘솔 모드는 Advanced Mode를 지원하지 않는다. Advanced Mode를 선택하기 위해서는 GUI 모드

를 이용한다.

Choose Install Set

------------------

Please choose the Install Set to be installed by this installer.

->1- Full Install

2- Typical

ENTER THE NUMBER FOR THE INSTALL SET, OR PRESS <ENTER> TO ACCEPT

THE DEFAULT

: 1

10. JDK의 위치를 입력한다. <ENTER>키를 누르면 자동으로 인식한 JDK의 위치를 사용한다. 디렉터리 변

경을 원하면 설치 경로를 입력한다.

==========================================================

Choose JDK Folder

-----------------

Please Choose a Folder:

Input User JDK Folder (DEFAULT: /usr/jdk1.5):

42 JEUS 설치 및 시작하기

11. JEUS 관리자의 패스워드를 입력한다. 이 패스워드는 “administrator” ID로 할당된다.

=================================================================

Password Input

--------------

Enter the Password for the administrator account.

This password will be registered in JEUS as the first user.

Input Password::

Corfirm Password::

참고

패스워드는 JEUS를 기동하는 필수적인 요소이다. 입력한 패스워드는 기억장치에 기록되며, 주의 깊

게 입력해야 한다.

12.다음 화면은 설치에 관련한 요약정보를 보여준다. <ENTER>키를 누르면 설치가 진행된다.

Pre-Installation Summary

------------------------

Please Review the Following Before Continuing:

Product Name:

JEUS6

Install Folder:

/home/jeus

Install Set

Full Install

Disk Space Information (for Installation Target):

Required: 130,312,561 bytes

Available: 1,612,476,416 bytes

PRESS <ENTER> TO CONTINUE:

13.진행 바와 함께 설치가 진행된다.

===========================================================

Installing...

-------------

[===============|===============|===============|===============]

[---------------|---------------|---------------|---------------]

제5장 UNIX에서 설치 및 제거 43

14.설치가 완료된다.

===========================================================

Installation Complete

---------------------

Congratulations! JEUS6 has been successfully installed to:

/home/jeus

Press Done to quit the installer.

PRESS <ENTER> TO EXIT THE INSTALLER:

5.4. 설치 확인GUI 모드나 콘솔 모드를 사용해서 JEUS를 설치한 후 사용에 필요한 환경변수를 설정해야 한다. 환경변수

를 설정하고 JEUS를 기동해서 설치가 정상적으로 이루어졌는지 확인한다. 환경변수를 설정하기 전에

JEUS가 설치된 경로에 디텍터리 구조를 확인한다.

5.4.1. 디렉터리 구조

다음은 JEUS를 설치했을 때의 전체 디렉터리 구조이다.

44 JEUS 설치 및 시작하기

[그림 5.12] JEUS 설치 후 디렉터리 구조

lib\

datasource\

webhome\

J

Legend:0I: binary or executable fileX: XML documentJ: JAR file

XSecurity configuration file

(XML)

0I

J

.dll, .so native library

System JARs

jeus.jar

system\

JDBC Drivers

schemas\

JEUS XML Schema

application\

endorsed\

shared\

client\

admin_home\

app_home\

autodeploy\

system_app\

uddi\

<node_name>_

<container_name>\

J Application archive filesworkspace\

samples\

license\

TM\

JeusSystem

logs\

webserver\

security

DOMAIN_NAME

security

Engine configuration file (XML)X

<node name>_<engine type>

_<engine name>\

X JEUSMain.xml

<nodename>\

config\

0I Applications launch scripts

bin\

JEUS_HOME\

X

J

다음은 디렉터리와 파일의 설명이다.

JEUS_HOME

JEUS의 최상위 디렉터리로, 실제 디렉터리 이름과 위치는 설치할 때 결정된다.

예) c:\jeus

bin

jeus, jeusadmin과 같은 실행 파일이나 스크립트가 모여있다.

config

서버 설정이 저장되는 서브 디렉터리를 가지고 있다.

제5장 UNIX에서 설치 및 제거 45

● config\<nodename>

이름이 <nodename>인 설정 파일이 위치한다. <nodename>은 JEUS 가 설치된 서버의 이름(일반

적으로 hostname)이다. 만약 현재 JEUS가 백업 노드로 작동되도록 설정되었다면 백업하는 노드의

<nodename> 디렉터리가 존재해야 한다.

JEUS Manager의 설정 파일은 JEUSMain.xml이며, 이 디렉터리에 존재한다. <nodename>이 jeus

일 때 "c:\jeus\config\jeus”가 된다.

● config\<nodename>\<nodename>_<enginetype>_<enginename>

엔진별로 설정 파일을 가지고 있다. <enginetype>은 ejb, jms, servlet 셋 중 하나이며, <enginename>

은 JEUSMain.xml에서 설정한 이름이다.

“c:\jeus\config\jeus\jeus_servlet_Engine1”일 때, <nodename>은 'jeus', <enginetype>은 'servlet'이

며, 사용자가 지정하는 <enginename>은 'Engine1'이 된다.

● config\<nodename>\security

해당 노드에서 사용하는 security configuration이 들어가 있다. 자세한 내용은 "JEUS Security 안내

서"를 참조한다.

webserver

JEUS가 설치될 때 JEUS 웹 서버가 설치되는 디렉터리이다. 자세한 내용은 "JEUS Web Service 안내

서"를 참조한다.

license

JEUS 라이선스 파일을 가지고 있다. 라이선스 파일은 JEUS가 실행되기 위해서 반드시 필요한 파일

이다.

logs

시스템 로그가 기록된다.

설명하위 디렉터리

트랜잭션 매니저의 로그 정보를 기록한다.logs\TM

node, engine container, engine들이 생성하는 로그를 기록한다.logs\JeusSystem

samples

JEUS의 예제들이 있다.

lib

JEUS가 기동될 때, 이 디렉터리의 모든 서브 디렉터리를 스캐닝해서 ".jar" 파일이나 ".zip" 파일을 클

래스 패스로 추가한다. 서브 디렉터리 스캐닝 순서는 system → application → datasource 순이다.

설명하위 디렉터리

사용자 애플리케이션에서 사용하는 클래스 파일이 위치한다. 이 디렉터리의

모든 '.zip' 파일이나 '.jar' 파일, 디렉터리 형태의 일반 클래스들은 클래스 패

스로 추가된다. 클래스 파일은 '.jar'나 '.zip' 파일보다 먼저 읽힌다.

lib\application

46 JEUS 설치 및 시작하기

설명하위 디렉터리

JEUS가 사용하는 라이브러리가 있는 디렉터리이므로 사용자는 이 디렉터리

를 수정해서는 안 된다. '.so' 나 '.dll'같은 Native Driver(예를 들면, Connector

lib\system

Resource Adapter에서 필요한 드라이버 등…)는 이 디렉터리에 위치해야 한

다. 또 여기에는 JEUS의 클래스인 jeus.jar가 있다.

JDBC 드라이버의 '.jar' 파일과 설정 파일이 위치한다.lib\datasource

XML 설정 파일을 위한 XML Schema 파일이 위치한다.lib\schemas

Java 런타임이 기본 JDK 클래스들에 우선하여 읽어들일 클래스들이 JAR 파

일 형태로 위치한다.

lib\endorsed

애플리케이션 간에 공유되는 라이브러리들이 위치한다.lib\shared

Standalone과 애플릿 등의 클라이언트가 사용하는 라이브러리가 위치한다.lib\client

webhome

JavaEE 애플리케이션(웹 애플리케이션, EJB)이 Deploy되는 홈 디렉터리이다.

설명하위 디렉터리

WebAdmin에서 사용되는 서블릿/JSP 파일이 있다.webhome\admin_home

애플리케이션의 기본 경로이다.webhome\app_home

AutoDeploy할 애플리케이션의 기본 경로이다.webhome\autodeploy

<node_name>_<container_name>에 해당하는 엔진 컨테이너에서

사용되는 애플리케이션이 존재한다.

webhome\<node_name>_<con

tainer_name>

workspace

JEUS가 동작하면서 필요한 작업을 하는 임시 디렉터리로 이 디렉터리를 수정해서는 안 된다.

5.4.2. 환경설정

JEUS를 사용하기 위해서는 환경변수가 필요하다. 설치과정에서 일부 환경변수를 설정하지만 경우에 따

라서는 수정해서 사용한다. 해당 변수들은 설치할 때 환경변수 PATH는 '.profile/.cshrc'에 적용되고, 그

외 환경변수는 '$JEUS_HOME/bin/jeus.properties' 파일에 설정된다.

다음은 주요 환경변수에 대한 설명이다.

[표 5.1] 환경변수 설정

의미환경변수

시스템 경로를 설정한다.PATH

다음을 포함하고 있어야 한다.

/home/jeus/bin

제5장 UNIX에서 설치 및 제거 47

의미환경변수

/home/jeus/webserver/bin

/home/jeus/lib/system

JEUS 설치 디렉터리를 설정한다.JEUS_HOME

예) /home/jeus

JEUS가 사용할 네트워크 포트 가운데 가장 기본이 되는 포트를 설정한다.(기

본값 : 9736)

JEUS_BASEPORT

JEUS 라이브러리 파일 경로를 설정한다.JEUS_LIBPATH

예) /home/jeus/lib/system

Java HotSpot JVM 사용 유무를 설정한다.VM_TYPE

예) hotspot or old

Administrator 계정의 ID를 설정한다.USERNAME

매니저와 컨테이너를 한 번에 부트하는 "One Step 부트"의 경우에 설정된다.

Administrator 패스워드를 설정한다.PASSWORD

매니저와 컨테이너를 한 번에 부트하는 "One Step 부트"의 경우에 설정된다.

Java 2 설치 디렉터리 경로를 설정한다.JAVA_HOME

예) /usr/jdk1.5

JDK 파라미터를 설정한다.JAVA_ARGS

JDK 벤더를 설정한다.JAVA_VENDOR

예) Sun or IBM or HP

JEUS 세션 서버를 위한 JDK 표준 메모리 인자를 설정한다.SESSION_MEM

JEUS 세션 서버를 위한 네트워크 프로토콜을 설정한다.SESSION_VERSION

예) Socket or RMI

환경변수를 설정할 때, C셸이라면 JEUS_HOME 변수를 설정하기 위해서는 ‘setenv’을 사용한다.

setenv JEUS_HOME “/home/jeus”

다음은 시스템 PATH 설정하는 예이다.

setenv PATH “${PATH}:/home/jeus/bin:

/home/jeus/lib/system:/home/jeus/webserver/bin”

참고

Java의 실행 디렉터리(/usr/jdk1.5/bin)는 JEUS에서 사용하게 되므로 환경변수에 추가할 때는 앞 쪽

에 추가하도록 한다.

48 JEUS 설치 및 시작하기

위의 사항을 검증한 후에, 로그오프하고 그 다음에 환경을 적용하기 위하여 다시 로그인한다.

5.4.3. 기동 확인

JEUS 설치가 정상적으로 완료되는지 확인하기 위하여 다음 단계를 진행해서 JEUS를 기동한다.

1. 콘솔 프롬프트에 jeus를 입력하면 다음 메시지를 출력한다. 다음 예제는 Base Port가 9736로 설정되어

있다.

***********************************************************

- JEUS Home : /home/jeus

- JEUS Base Port : 9736

- Java Vendor : Sun

- Added Java Option :

***********************************************************

/usr/jdk1.5/bin/java -server -

Xbootclasspath/p:/home/jeus/lib/system/extension.jar:/home/jeus/jeus/lib/system

/classloader.jar -classpath /home/jeus/lib/system/bootstrap.jar -Djeus.jvm.vers

ion=hotspot -Djeus.home=/home/jeus -Djava.naming.factory.initial=jeus.jndi.JNSC

ontextFactory -Djava.naming.factory.url.pkgs=jeus.jndi.jns.url -Djeus.session.v

ersion=socket -Djeus.baseport=9736 -Djeus.tm.checkReg=true -Djava.util.logging.

config.file=/home/jeus/bin/logging.properties jeus.server.JeusBootstrapper

[2005.02.02 17:11:34][0] [tmax-10] [MGR-0411] virtual host name of this manager

: tmax

[2005.02.02 17:11:38][1] [tmax-10] [EJB-6452] class ftp is exported

[2005.02.02 17:11:42][0] [tmax-10] [MGR-0241] JeusServer is Ready

위 출력은 JEUS Manager가 정상적인 로딩과 JEUS가 대기 상태임을 나타낸다.

참고

1. “Invalid License” 메시지가 나타나면 라이선스가 잘못된 것이다. TmaxSoft로부터 라이선스를 취

득하여 $JEUS_HOME/license 디렉터리에 복사한다.

2. 모든 단계들의 진행과 환경변수가 정확히 설정되어 있는지 확인한다. 특히, '/jeus/bin' 디렉터리가

시스템 경로(‘jeus’ 스크립트가 실행될 수 있도록)에 있는 것을 확인한다.

2. 다른 콘솔 창에서 다음의 명령어를 실행한다. <node name>은 호스트 머신 이름이다.

jeusadmin <node name>

3. jeusadmin 툴에 로그인을 한 후에, boot와 down 명령으로 JEUS 서버를 제어할 수 있다.

JEUS 서버를 다운시키려면 down을 입력한 후<ENTER> 키를 누르고, 다음 행에서 jeusexit를 입력한

후 <ENTER> 키를 누른다.

down

jeusexit

제5장 UNIX에서 설치 및 제거 49

4. jeusadmin을 종료하기 위해서 exit 명령어를 사용한다.

exit

5.5. GUI 모드에서 제거다음은 GUI 모드에서 JEUS를 삭제하는 과정에 대한 설명이다. GUI 모드로 삭제가 가능하지 않다면 “5.6.

콘솔 모드에서 제거”를 참고한다. UNIX에서 GUI 설치 툴을 이용하기 위해서는 Java 기반의 GUI 환경을

지원하는 콘솔 또는 터미널이 설치되어 있어야 한다.

1. ‘jeus’ 스크립트와 WebAdmin 등의 모든 JEUS 프로그램을 종료한다.

2. JEUS가 설치된 경로에서 $JEUS_HOME/UninstallerData/Uninstall -i GUI 를 실행한다.

[jeususer@matrix UninstallerData]$./Uninstall -i GUI

3. 다음과 같은 설치 제거 초기 화면이 나타난다.

[그림 5.13] 설치 제거 초기 화면

4. 제거 화면의 메시지를 읽고 JEUS 제거 준비가 되었다면 [Uninstall] 버튼을 클릭한다. JEUS를 제거하

지 않고 프로그램을 종료하려면 [Cancel] 버튼을 클릭한다.

참고

제거 프로그램으로 제거하여도 JEUS 설치 후에 생성된 파일들은 제거되지 않는다. 이 파일들은 수

동으로 제거해야 한다.

50 JEUS 설치 및 시작하기

5. JEUS 제거가 진행되는 것을 확인한다.

[그림 5.14] JEUS 제거 진행 화면

6. JEUS 제거 종료를 확인하고 [Done] 버튼을 클릭하여 JEUS 제거를 완료한다.

[그림 5.15] JEUS 제거 종료

제5장 UNIX에서 설치 및 제거 51

5.6. 콘솔 모드에서 제거다음은 콘솔 모드에서 JEUS를 삭제하는 과정에 대한 설명이다.

1. JEUS가 설치된 경로에서 $JEUS_HOME/UninstallerData/Uninstall을 실행하여 JEUS Core와 JEUS 설

치 디렉터리를 삭제한다.

[jeususer@matrix UninstallerData]$./Uninstall

2. 삭제 과정이 진행된다. 제거가 완료되면 제거가 완료되었다는 메시지가 표시된다.

Preparing CONSOLE Mode Installation...

===========================================================

(created with InstallAnywhere by Zero G)

-----------------------------------------------------------

===========================================================

Uninstall JEUS6

------------------

About to uninstall...

JEUS6

This will remove features installed by InstallAnywhere. It will not remove files

and folders created after the installation.

PRESS <ENTER> TO CONTINUE:

===========================================================

Uninstalling...

---------------

...*

*

**************************************************

*************************************************

...*

*

**************************************************

52 JEUS 설치 및 시작하기

*************************************************

...*

*

**************************************************

*************************************************

===========================================================

Uninstall Complete

------------------

All items were successfully uninstalled.

5.7. 제거 확인JEUS가 설치된 경로에 디렉터리와 설치된 파일이 삭제된 것을 확인한다. JEUS가 설치된 후 생성된 파일

은 삭제되지 않으므로 해당 파일은 수동으로 삭제해야 한다.

제5장 UNIX에서 설치 및 제거 53

제6장 Windows에서 설치 및 제거

본 장에서는 Windows에서 JEUS를 설치하고 제거하는 과정에 대해서 설명한다.

6.1. 개요Windows 환경에서 JEUS 설치는 GUI 설치 툴을 통하여 이루어진다. Windows에서 JEUS 설치는 다음의

과정으로 진행된다.

1. JDK 5 설치

2. GUI 모드에서 JEUS 설치(파일 복사)

3. 설치 확인

- 기동확인

- 환경변수 설정과 검증

4. 선택적으로 JEUS의 Windows 서비스 등록과 해제

JEUS 제거도 GUI를 통해 이루어진다.

내장 WebtoB의 Windows 플랫폼의 컴파일 환경이 VC90으로 변경되었다. 이에 따라서 JEUS 6 Fix#7이

전의 버전에서 JEUS 6 Fix#8이후의 버전으로 Upgrade 하거나 JEUS 6 Fix#8 이후의 버전을 새로 설치할

때에 내장 WebtoB의 정상적인 동작을 위해서는 “C 런타임 및 표준 C++ 라이브러리(msvcm90.dll,

msvcp90.dll, msvcr90.dll)"가 필요하게 되었다.

다음의 사이트를 통해 Microsoft Visual C++ 2008 Redistributable Package 파일을 다운로드 받을 수 있다.

● Microsoft Visual C++ 2008 Redistributable Package (x86)

http://www.microsoft.com/downloads/ko-kr/details.aspx?FamilyID=9B2DA534-3E03-4391-8A4D-

074B9F2BC1BF

● Microsoft Visual C++ 2008 Redistributable Package (x64)

http://www.microsoft.com/downloads/ko-kr/details.aspx?displaylang=ko&FamilyID=bd2a6171-e2d6-

4230-b809-9a8d7548c1b6

참고

내장 WebtoB를 사용하지 않거나 Microsoft.NET Framework 3.5 SP1 이 설치되어 있으면 Redis

tributable Package를 설치하지 않아도 된다.

제6장 Windows에서 설치 및 제거 55

6.2. 설치본 절은 설치 툴을 사용하여 Microsoft Windows 환경(Windows 2000/2003/XP,Vista)에서 JEUS를 설치하

는 방법을 설명한다.

참고

UNIX 콘솔 모드 환경과는 달리, Windows 환경에서 JEUS 설치할 때 커맨드 라인 툴은 제공하지 않

는다.

JDK 5 설치한 후, Windows에 JEUS를 설치하려면 다음과 같은 단계로 진행한다.

1. JEUS 설치 프로그램인 jeus60-win.exe가 있는 위치로 이동한다. jeus60-win.exe 파일을 더블 클릭해

서 실행한다.

2. 설치 툴의 초기화면이 나타난다. 진행이 100%가 될 때까지 기다린다.

[그림 6.1] 설치 툴 초기 화면

56 JEUS 설치 및 시작하기

3. 설치 소개 화면이 표시된다.

[그림 6.2] 소개 화면

4. 소개 내용을 읽고 [Next] 버튼을 클릭한다. 설치를 종료하려면 [Cancel] 버튼을 클릭한다.

5. JEUS 라이선스 준수 화면이 나타난다. 라이선스 준수 내용을 읽고 “I accept the terms of …”를 선택

한 후 [Next] 버튼을 클릭한다.

[그림 6.3] 라이선스 준수 화면

6. 설치 디렉터리 선택 화면이 나타난다. JEUS 바이너리와 기타 다른 파일들은 설정한 경로의 디렉터리

의 하위에 설치된다.

[Choose…]를 클릭하면 다른 설치 폴더를 선택할 수 있고 [Restore Default Folder]를 클릭하면 초기

기본 폴더로 복귀한다. 가능하면 기본 폴더를 그대로 사용하길 권장한다. (예: “C:\TmaxSoft\JEUS6.0”)

제6장 Windows에서 설치 및 제거 57

설치할 디렉터리를 선택하고 [Next]버튼을 클릭한다.

[그림 6.4] 설치 디렉터리 선택 화면

7. Install Set 선택 화면이 나타난다. 설치 옵션에서 Full Install, Typical, Advanced Mode 중 하나를 선택

하고 [Next]을 클릭한다(기본 Full Install 권장).

● Full Install : JEUS 예제인 Samples와 JEUS 관련 문서 파일이 포함된 JEUS Full 버전을 설치한다.

● Typical : JEUS 예제인 Samples가 제외된 JEUS 관련 문서 파일과 JEUS Core 파일을 설치한다.

● Advanced Mode : 수동 설치인 Manual Configuration Option을 지원한다. 사용자가 autodeploy 경로

와 JEUS_BASEPORT를 지정할 수 있다.

[그림 6.5] Install Set 선택화면

58 JEUS 설치 및 시작하기

8. JDK 설치 디렉터리 선택 화면이 나타난다. 설치된 Java 2 JDK 전체 경로를 입력한다. (예: “C:\ja

va\1.5.0.7")

설치 프로그램은 설치된 JDK 경로를 제안하지만 경우에 따라 변경할 수 있다. [Choose…]를 클릭하면

다른 설치 폴더를 선택할 수 있고 [Restore Default Folder]를 클릭하면 초기 기본 폴더로 복귀한다.

[그림 6.6] JDK 설치 디렉터리 선택 화면

참고

JEUS 설치 후에 Java 2 JDK를 설치하려면 JDK 설치 경로를 포함하는 JAVA_HOME 환경변수를 수

동으로 설정해야 한다. 그러므로 JDK를 설치 후 JEUS 설치를 권장한다.

예를 들면 Windows 명령 프롬프트에 “set JAVA_HOME=C:\java\1.5.0.7” 명령을 실행하여 설정한

다.

9. Windows NT 서비스 등록 선택 팝업 화면이 나타난다. 서비스 등록은 Windows용 설치 파일에만 나타

난다.

[그림 6.7] Windows 서비스 등록 여부 선택 화면

제6장 Windows에서 설치 및 제거 59

10.패스워드 입력 화면이 나타난다. 화면에서 JEUS 관리자의 패스워드를 입력한다. 패스워드는 “adminis

trator” 관리자 계정으로 할당된다.

[그림 6.8] 패스워드 입력 화면

11.지금 단계까지 설정한 설치 정보를 확인한 후 [Install] 버튼을 클릭하여 설치를 시작한다.

[그림 6.9] 설치 정보 확인

60 JEUS 설치 및 시작하기

12.설치가 진행되는 것을 확인한다

[그림 6.10] 설치 진행 확인

13.설치 종료를 확인한다.

[그림 6.11] 설치 종료 확인

제6장 Windows에서 설치 및 제거 61

6.3. 설치 확인JEUS를 설치한 후 사용에 필요한 환경변수를 설정해야 한다. 환경변수를 설정하고 JEUS를 기동해서 설

치가 정상적으로 이루어졌는지 확인한다. 환경변수를 설정하기 전에 JEUS가 설치된 경로에 디텍터리 구

조를 확인한다.

6.3.1. 디렉터리 구조

다음은 JEUS를 설치했을 때의 전체 디렉터리 구조이다.

[그림 6.12] JEUS 설치 후 디렉터리 구조

lib\

datasource\

webhome\

J

Legend:0I: binary or executable fileX: XML documentJ: JAR file

XSecurity configuration file

(XML)

0I

J

.dll, .so native library

System JARs

jeus.jar

system\

JDBC Drivers

schemas\

JEUS XML Schema

application\

endorsed\

shared\

client\

admin_home\

app_home\

autodeploy\

system_app\

uddi\

<node_name>_

<container_name>\

J Application archive filesworkspace\

samples\

license\

TM\

JeusSystem

logs\

webserver\

security

DOMAIN_NAME

security

Engine configuration file (XML)X

<node name>_<engine type>

_<engine name>\

X JEUSMain.xml

<nodename>\

config\

0I Applications launch scripts

bin\

JEUS_HOME\

X

J

62 JEUS 설치 및 시작하기

다음은 디렉터리와 파일의 설명이다.

JEUS_HOME

JEUS의 최상위 디렉터리로, 실제 디렉터리 이름과 위치는 설치할 때 결정된다.

예) c:\jeus

bin

jeus, jeusadmin과 같은 실행 파일이나 스크립트가 모여있다.

config

서버 설정이 저장되는 서브 디렉터리를 가지고 있다.

● config\<nodename>

이름이 <nodename>인 설정 파일이 위치한다. <nodename>은 JEUS 가 설치된 서버의 이름(일반

적으로 hostname)이다. 만약 현재 JEUS가 백업 노드로 작동되도록 설정되었다면 백업하는 노드의

<nodename> 디렉터리가 존재해야 한다.

JEUS Manager의 설정 파일은 JEUSMain.xml이며, 이 디렉터리에 존재한다. <nodename>이 jeus

일 때 "c:\jeus\config\jeus”가 된다.

● config\<nodename>\<nodename>_<enginetype>_<enginename>

엔진별로 설정 파일을 가지고 있다. <enginetype>은 ejb, jms, servlet 셋 중 하나이며, <enginename>

은 JEUSMain.xml에서 설정한 이름이다.

“c:\jeus\config\jeus\jeus_servlet_Engine1”일 때, <nodename>은 'jeus', <enginetype>은 'servlet'이

며, 사용자가 지정하는 <enginename>은 'Engine1'이 된다.

● config\<nodename>\security

해당 노드에서 사용하는 security configuration이 들어가 있다. 자세한 내용은 "JEUS Security 안내

서"를 참조한다.

webserver

JEUS가 설치될 때 JEUS 웹 서버가 설치되는 디렉터리이다. 자세한 내용은 "JEUS Web Service 안내

서"를 참조한다.

license

JEUS 라이선스 파일을 가지고 있다. 라이선스 파일은 JEUS가 실행되기 위해서 반드시 필요한 파일

이다.

logs

시스템 로그가 기록된다.

설명하위 디렉터리

트랜잭션 매니저의 로그 정보를 기록한다.logs\TM

node, engine container, engine들이 생성하는 로그를 기록한다.logs\JeusSystem

제6장 Windows에서 설치 및 제거 63

samples

JEUS의 예제들이 있다.

lib

JEUS가 기동될 때, 이 디렉터리의 모든 서브 디렉터리를 스캐닝해서 ".jar" 파일이나 ".zip" 파일을 클

래스 패스로 추가한다. 서브 디렉터리 스캐닝 순서는 system → application → datasource 순이다.

설명하위 디렉터리

사용자 애플리케이션에서 사용하는 클래스 파일이 위치한다. 이 디렉터리의

모든 '.zip' 파일이나 '.jar' 파일, 디렉터리 형태의 일반 클래스들은 클래스 패

스로 추가된다. 클래스 파일은 '.jar'나 '.zip' 파일보다 먼저 읽힌다.

lib\application

JEUS가 사용하는 라이브러리가 있는 디렉터리이므로 사용자는 이 디렉터리

를 수정해서는 안 된다. '.so' 나 '.dll'같은 Native Driver(예를 들면, Connector

lib\system

Resource Adapter에서 필요한 드라이버 등…)는 이 디렉터리에 위치해야 한

다. 또 여기에는 JEUS의 클래스인 jeus.jar가 있다.

JDBC 드라이버의 '.jar' 파일과 설정 파일이 위치한다.lib\datasource

XML 설정 파일을 위한 XML Schema 파일이 위치한다.lib\schemas

Java 런타임이 기본 JDK 클래스들에 우선하여 읽어들일 클래스들이 JAR 파

일 형태로 위치한다.

lib\endorsed

애플리케이션 간에 공유되는 라이브러리들이 위치한다.lib\shared

Standalone과 애플릿 등의 클라이언트가 사용하는 라이브러리가 위치한다.lib\client

webhome

JavaEE 애플리케이션(웹 애플리케이션, EJB)이 Deploy되는 홈 디렉터리이다.

설명하위 디렉터리

WebAdmin에서 사용되는 서블릿/JSP 파일이 있다.webhome\admin_home

애플리케이션의 기본 경로이다.webhome\app_home

AutoDeploy할 애플리케이션의 기본 경로이다.webhome\autodeploy

<node_name>_<container_name>에 해당하는 엔진 컨테이너에서

사용되는 애플리케이션이 존재한다.

webhome\<node_name>_<con

tainer_name>

workspace

JEUS가 동작하면서 필요한 작업을 하는 임시 디렉터리로 이 디렉터리를 수정해서는 안 된다.

6.3.2. 환경설정

JEUS를 사용하기 위해서는 환경변수가 필요하다. 설치과정에서 일부 환경변수를 설정하지만 경우에 따

라서는 수정해서 사용한다.

64 JEUS 설치 및 시작하기

환경변수 PATH는 Windows 명령 프롬프트에 “set” 명령을 사용함으로써 정확하게 설정되었는지 확인할

수 있다. 또한, [시작] > [설정] > [제어판] > [시스템] > [고급] > [환경변수]에서 확인 가능하다. (Windows

2000/Windows XP/Windows 2003/Windows Vista 경우) 나머지 환경변수는

%JEUS_HOME%\bin\jeus.properties.cmd 파일에 설정된다.

다음은 주요 환경변수에 대한 설명이다.

[표 6.1] JEUS 설치 시 환경변수 설정

설정 용례의미환경변수

시스템 경로를 설정한다.PATH

다음을 포함하고 있어야 한다.

C:\TmaxSoft\JEUS6.0\bin

C:\TmaxSoft\JEUS6.0\webserver\bin

C:\TmaxSoft\JEUS6.0\lib\system

JEUS 설치 디렉터리를 설정한다.JEUS_HOME

예) C:\TmaxSoft\JEUS6.0

9736JEUS가 사용할 네트워크 포트 가운데 가장 기본이 되는 포

트를 설정한다.(기본값 : 9736)

JEUS_BASEPORT

Deploy가 자동으로 수행되는 디렉터리를 설정한다.DEPLOY_HOME

예) C:\TmaxSoft\JEUS6.0\webhome\autodeploy

JEUS 라이브러리 파일 경로를 설정한다.JEUS_LIBPATH

예) C:\TmaxSoft\JEUS6.0\lib\system

Java HotSpot JVM 사용 유무를 설정한다.VM_TYPE

hotspot or old로 설정이 가능하며 hotspot으로 설정하면 -

server 옵션으로 동작하고 old로 설정하면 vm 옵션이 들어

가지 않는다. vm option이 동작하지 않는 장비는 old로 설정

해야 한다.

Administrator 계정의 ID를 설정한다.USERNAME

매니저와 컨테이너를 한 번에 부트하는 "One Step 부트"의

경우에 설정된다.

Administrator 패스워드를 설정한다.PASSWORD

매니저와 컨테이너를 한 번에 부트하는 "One Step 부트"의

경우에 설정된다.

C:\java\1.5.0.7Java 2 설치 디렉터리 경로를 설정한다.JAVA_HOME

예) C:\java\1.5.0.7

JDK 파라미터를 설정한다.JAVA_ARGS

제6장 Windows에서 설치 및 제거 65

설정 용례의미환경변수

Sun, IBM, HPJDK 벤더를 설정한다.JAVA_VENDOR

예) Sun or IBM or HP

JEUS 세션 서버를 위한 JDK 표준 메모리 인자를 설정한다.SESSION_MEM

Socket, RMIJEUS 세션 서버를 위한 네트워크 프로토콜을 설정한다.SESSION_VERSION

예) Socket or RMI

6.3.3. 기동 확인

JEUS 설치가 정상적으로 완료되는지 확인하기 위하여 다음 단계를 진행하여 JEUS를 기동한다.

1. 명령 프롬프트를 실행하고 ‘jeus’ 를 입력하거나 [시작] >[프로그램] > [TmaxSoft] > [JEUS] > [jeus 스

크립트]를 실행한다.

다음 메시지가 명령 프롬프트 창에 나타난다.

C:\Documents and Settings\Administrator>jeus

**************************************************************

- JEUS Home : C:\TmaxSoft\JEUS6.0

- JEUS Base Port : 9736

- Added Java Option :

- Java Vendor : Sun

**************************************************************

"C:\java\1.5.0.7\bin\java" -server -Xmx512m -Xbootclasspath/p:"C:\TmaxSoft\JEUS6

.0\lib\system\extension.jar";"C:\TmaxSoft\JEUS6.0\lib\system\classloader.jar" -c

lasspath "C:\TmaxSoft\JEUS6.0\lib\system\bootstrap.jar" -Djava.endorsed.dirs="C:

\TmaxSoft\JEUS6.0\lib\endorsed" -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rm

i.dgc.server.gcInterval=3600000 -Djeus.jvm.version=hotspot -Djeus.home="C:\TmaxS

oft\JEUS6.0" -Djava.naming.factory.initial=jeus.jndi.JNSContextFactory -Djava.na

ming.factory.url.pkgs=jeus.jndi.jns.url -Djava.library.path="C:\TmaxSoft\JEUS6.0

\lib\system" -Djeus.baseport=9736 -Djava.util.logging.config.file="C:\TmaxSoft\J

EUS6.0\bin\logging.properties" -Djeus.properties.replicate=jeus,java.util.loggin

g,sun.rmi.dgc -Djeus.tool.webadmin.locale.language=ko -Djava.net.preferIPv4Stack

=true -Djeus.management.simple.log=true jeus.server.JeusBootstrapper

[2007.05.19 13:33:39][1][] [client-10] initialize virtual DNS table, enable : tr

ue, table : {shimbh:9736=johan}

[2007.05.19 13:33:40][0][b037] [johan-10] [MGR-0411] virtual host name of this m

anager : johan

[Network Configuration] default local hostname : null, default local ip : null,

local inetaddress : shimbh/192.168.1.210, local host address : 192.168.1.210,

full host name : shimbh, local hostname : shimbh

[RMI Configuration] Default RMI export port for this container : 9743

[SystemProperty] The system property is set but has no corresponding jeus proper

ty, maybe typographical error : jeus.management.simple.log

66 JEUS 설치 및 시작하기

[2007.05.19 13:33:48][2][b037] [johan-10] jeus.server.useListenPortPerContainer=

true

[2007.05.19 13:33:48][2][b037] [johan-10] The id of this container johan_contain

er1 is 63

[2007.05.19 13:33:48][2][b037] [johan-10] The base port of this container johan_

container1 is 10381

[2007.05.19 13:33:48][3][b037] [johan-10] [MGR-0239] JEUSMain.xml is loaded

[2007.05.19 13:33:50:390] webt.properties file is not found

[2007.05.19 13:33:57][0][b037] [johan-10] [MGR-0241] JeusServer is Ready

출력 메시지에 "JeusServer is Ready"는 JEUS가 대기 상태에 있는 것을 나타낸다.

참고

1. “Invalid License” 메시지가 출력되면 라이선스가 잘못된 것이다. TmaxSoft로부터 라이선스를 취

득하여 %JEUS_HOME%\license 디렉터리에 복사한다.

2. 모든 설치 과정과 필요한 환경변수들이 제대로 설정되어 있는지 확인한다. 특히, “C:\Tmax

Soft\JEUS6.0\bin” 디렉터리가 시스템 경로(jeus.cmd 스크립트 가 실행)에 포함 유무를 확인한다.

2. 다른 터미널 창에 다음 명령어를 입력한다.

jeusadmin <hostname>

다음은 hostname이 'johan'인 경우에 대한 예이다.

C:\TmaxSoft\JEUS6.0\bin>jeusadmin johan

Login name>administrator

Password>

JEUS 6.0 Jeus Manager Controller

johan>

JEUS 관리자의 사용자명과 패스워드를 입력한다. 일반적으로 관리자의 계정은 administrator이고 패

스워드는 JEUS를 설치할 때 입력한 값이다.

3. 잠시 후 프롬프트가 다시 뜨면 JEUS가 제대로 기동되었고, 다시 명령어를 받을 수 있는 상태가 되었다

는 것을 나타낸다.

4. 웹 브라우저를 열어서 주소 창에 다음의 주소를 입력한다.

http://localhost:9744/webadmin

만약 위 예제의 JEUSMain.xml에서 WebAdmin을 사용할 수 있게 해놓았다면, WebAdmin이라는 웹 기

반의 관리 툴이 접속된다.

제6장 Windows에서 설치 및 제거 67

5. JEUS 관리자의 계정과 패스워드를 입력하고 [Login] 버튼을 클릭한다. 일반적으로 관리자의 계정은

administrator이고 패스워드는 JEUS를 설치할 때 입력한 값이다.

[그림 6.13] WebAdmin 로그인 화면

6. WebAdmin을 통해서 JEUS를 관리할 수 있다.

[그림 6.14] WebAdmin 노드 관리 페이지

68 JEUS 설치 및 시작하기

7. JEUS 서비스나 엔진을 중지하려면 JEUS 노드 트리에서 노드명을 선택(johan)한 후, 웹 페이지 메인

뷰의 [제어] 탭을 선택한다. 그리고 JEUS 매니저-제어 화면에서 [다운] 탭을 선택한다.

다운가능한 노드를 체크한 후 [확인] 버튼을 클릭하여 다운 작업을 진행한다.

[그림 6.15] 노드 다운 페이지

8. 종료 가능한 노드가 [종료] 탭에 나타난다. 종료할 노드를 선택한 후 [확인] 버튼을 클릭하여 종료 작업

을 완료한다.

[그림 6.16] 노드 종료 페이지

9. 다음 명령어를 입력해서 jeusadmin을 종료한다.

exit

6.4. 서비스 등록과 제거JEUS는 Windows 운영체제에서 서비스로 동작할 수 있도록 설계되었다. 이 기능을 사용하려면 JEUS 폴

더에 있는 서비스를 실행한다. 다음은 Windows NT 서비스로 동작하도록 JEUS를 등록, 제거하는 과정에

대한 설명이다.

제6장 Windows에서 설치 및 제거 69

6.4.1. 서비스 등록

다음은 Windows 서비스를 등록하는 과정에 대한 설명이다.

1. svcinstall.exe가 위치한 %JEUS_HOME% 아래 'bin' 디렉터리로 이동한다.

(기본: C:\TmaxSoft\JEUS6.0\bin)

2. svcinstall.exe를 실행해서 JEUS를 Windows에 서비스로 등록한다. %JEUS_HOME%\bin 아래 jeus.ini

파일은 JEUS를 Windows NT 서비스로 실행할 때 사용되는 설정 파일이다. 뿐만 아니라 jeus.ini 파일

명은 서비스명으로 등록된다(jeus라는 이름으로 등록). 이 파일에는 JEUS_HOME, JEUS_BASEPORT,

JAVA_HOME 등의 설정 정보가 저장된다.

● JEUS를 시작할 때 Hotspot JVM을 사용하는 경우

jeus.cmd 스크립트에 -hotspot 옵션을 넣는다. ID와 패스워드는 “administrator”와 “password”이다.

svcinstall.exe <jeus.ini> <id> <password> -hotspot

● JEUS가 시작할 때 Hotspot JVM을 사용하지 않는 경우

JEUS를 실행할 때 -hotspot 옵션을 넣지 않는다. ID와 패스워드는 “administrator”와 “password”이다.

svcinstall.exe <jeus.ini> <id> <password>

다음은 svcinstall 명령어 사용에 대한 예이다.

C:\TmaxSoft\JEUS6.0\bin>svcinstall jeus.ini administrator 1111111 -hotspot

JEUS Windows service installer Ver. 3.1.1

Copyright (c) 2006, TmaxSoft Co., Ltd.

JEUS Service[jeusservice-jeus] installed

6.4.2. 서비스 등록 확인

서비스 등록에 대해서는 다음과 같이 2가지 방법으로 확인이 가능하다.

● GUI 모드에서 등록 확인

Windows에서 [시작] > [설정] > [제어판] > [관리 도구] > [서비스]를 클릭하면 서비스 화면에서 JEUS

서비스가 존재하는지 확인할 수 있다.

서비스명(서비스 등록 시 사용한 파일명)을 더블 클릭하면 [시작], [중지], [일시 중지], [계속] 버튼이 나

타난다. [시작] 버튼을 클릭하면 서비스가 시작된다. 이것은 설치 파일에 등록된 엔진과 기타 컴포넌트

가 로딩된다는 것을 나타낸다. [중지] 버튼을 클릭하면 서비스가 중단된다.

● 명령 프롬프트에서 등록 확인

서비스를 확인하려면 명령 프롬프트에서 다음과 같이 입력한다.

svcremove -list

70 JEUS 설치 및 시작하기

다음은 서비스를 확인하는 예제이다.

C:\TmaxSoft\JEUS6.0\bin>svcremove -list

JEUS Windows service remover Ver. 3.1.1

Copyright (c) 2006, TmaxSoft Co., Ltd.

** JEUS Services **

----------------------------

- jeus

Total count: 1

결과 메시지에서 Windows 서비스가 총 1개 등록되어 있음을 확인할 수 있다.

6.4.3. 서비스 제거

서비스를 중지하려면 Windows에서 [시작] >[ 설정] > [제어판] > [관리 도구] > [서비스]를 선택하고 [중지]

버튼을 클릭하여 서비스를 중단한다.

서비스를 영구히 제거하려면 %JEUS_HOME%\bin 디렉터리의 svcremove.exe를 실행한다. 인자로 서비

스명을 사용한다.

C:\TmaxSoft\JEUS6.0\bin> svcremove.exe jeus>

JEUS Windows service remover Ver. 3.0

Copyright (c) 2006, TmaxSoft Co., Ltd.

Removing windows service 'jeus'...

Successfully done.

6.5. 제거다음은 JEUS를 제거하는 과정이다.

1. ‘jeus’ 스크립트와 WebAdmin 등의 모든 JEUS 프로그램들을 종료한다.

2. JEUS 홈 디렉터리의 'UninstallerData\JEUS6.0' 디렉터리에서 Uninstall.exe를 실행하거나(예:

“C:\TmaxSoft\JEUS6.0\UninstallerData\JEUS6.0”), [시작] > [프로그램] > [TmaxSoft] > [JEUS6.0] >

[Uninstall]을 클릭한다.

제6장 Windows에서 설치 및 제거 71

3. 다음과 같이 설치 제거 초기 화면이 나타난다.

[그림 6.17] 설치 제거 초기 화면

4. 제거 화면의 메시지를 읽고 JEUS 제거 준비가 되었다면 [Uninstall] 버튼을 클릭한다. JEUS를 제거하

지 않고 프로그램을 종료하려면 [Cancel] 버튼을 클릭한다.

참고

제거 프로그램으로 제거하여도 JEUS 설치 후에 생성된 파일들은 제거되지 않는다. 이 파일들은 수

동으로 제거해야 한다.

5. Windows NT서비스가 존재한다면 수동으로 제거를 하고, 다시 제거 과정을 수행한다.

[그림 6.18] Windows 서비스 제거

72 JEUS 설치 및 시작하기

6. Uninstall JEUS 화면에서 JEUS 제거의 진행표시를 볼 수 있다.

[그림 6.19] 설치 제거 진행 화면

7. 설치 제거 완료 화면이 나타날 때까지 기다린다.

JEUS 설치 후에 생성된 파일들은 Uninstaller로 제거되지 않기 때문에 삭제할 수 없는 파일의 목록은

다음과 같이 출력된다. 이 파일들은 그대로 두거나, 수작업으로 삭제한다.

[그림 6.20] 설치 제거 완료 화면

8. [Done] 버튼을 클릭하여 JEUS Uninstaller를 종료한다.

9. 제거된 사항의 적용을 위하여 컴퓨터를 재기동하거나 또는 로그오프 후 다시 로그인한다.

제6장 Windows에서 설치 및 제거 73

6.6. 제거 확인정상적으로 제거되었는지 다음 방법으로 확인한다.

● 파일과 디렉터리

%JEUS_HOME% 디렉터리의(기본: C:\TmaxSoft\JEUS6.0) 모든 하위 파일과 하위 폴더가 제거되었는

지 확인한다.

● Shortcuts

설치하는 동안에 생성된 ‘바로가기’ (프로그램 메뉴의 항목과 같은)가 제거되었는지 확인한다.

● 환경변수

다음 환경변수들이 제거되었는지를 확인하고, 만약 필요하다면 [시작] > [설정] > [제어판] > [시스템] >

[고급] > [환경변수]에서 수동으로 제거한다(Windows 2000/ Windows 2003/ Windows XP/ Windows

Vista).

Windows 명령 프롬프트에 set 명령으로 변수들을 확인할 수 있다. 만약 JEUS 제거 후에 컴퓨터를 재부

팅했다면 갱신되어 있어야 한다.

● PATH

시스템 path에서 JEUS 경로는 사라진다(예: “C:\TmaxSoft\JEUS6.0”).

74 JEUS 설치 및 시작하기

Part III. JEUS 시작하기

Part III. JEUS 시작하기 75

제7장 개요

본 부분은 TmaxSoft의 JEUS 6 Web Application Server를 사용하여 프로그램을 처음 작성하는 사용자를

위한 Part로 다음의 내용으로 구성된다.

● 시스템 설정

JEUS의 기본적인 환경설정 방법과 운영 방법에 대해 설명한다.

● WebTier 사용

웹 애플리케이션의 패키징 방법을 설명하고 예제 서블릿 /JSP/JSTL/JSF 페이지를 실행한다.

● EJB 사용

EJB 모듈의 패키징 및 배치 방법, Stateless Session Bean과 Java Persistence API의 이용 방법에 대해

설명한다.

● 웹 서비스 사용

웹 서비스의 패키징 및 배치 방법, 서블릿 기반 End-point와 EJB 기반 End-point의 이용 방법에 대해 설

명한다.

각 부분은 순서에 따라 진행하도록 되어 있으므로 JEUS Web Application Server에 대하여 완벽히 이해하

려면 이 문서에 담겨있는 내용을 실제로 실행해 보는 것을 권장한다.

참고

좀 더 상세한 기술적인 내용의 문서를 보려면 "JEUS Server 안내서", "JEUS EJB 안내서", "JEUS

Web Container 안내서" 등을 참조한다. WebAdmin 툴을 좀 더 효과적으로 사용하길 원한다면 "JEUS

WebAdmin 안내서"를 읽어보길 권한다.

제7장 개요 77

제8장 시스템 설정

본 장에서는 JEUS의 환경설정 및 기동 방법에 대한 기본적인 내용을 설명한다.

8.1. WebAdmin 사용WebAdmin을 사용해서 시스템을 구성하는 방법은 다음의 순서로 설명한다.

● WebAdmin을 이용

- 기본 환경설정

- 시스템 컴포넌트의 추가와 설정 방법

- 시스템 기동 방법

8.1.1. 기본 환경 구성

JEUS WebAdmin은 웹을 통해 JEUS의 모든 요소를 관리하기 위한 서비스를 제공한다. 사용자는 쉽게

JEUS에 접근하여 시스템 설정과 모니터링 및 애플리케이션을 관리할 수 있다.

다음 순서에 따라 WebAdmin을 실행한다.

1. 가장 먼저 JEUS Manager를 실행한다. 방법은 커맨드 창에서 ‘jeus’라는 실행 파일을 실행한다. ‘jeus’

스크립트는 JEUS_HOME\bin\ 디렉터리에 있으며 시스템 PATH에 설정되어 있어야 한다.

참고

WebAdmin을 사용하기 위해서는 JEUSMain.xml에 <enable-webadmin> 태그의 값이 true로 설정되

어 있어야 한다.

예)

C:\Documents and Settings\Administrator>jeus

**************************************************************

- JEUS Home : C:\TmaxSoft\JEUS6.0

- JEUS Base Port : 9736

- Added Java Option :

- Java Vendor : Sun

**************************************************************

"C:\java\1.5.0.7\bin\java" -server -Xmx512m -Xbootclasspath/p:"C:\TmaxSoft\JEUS6

.0\lib\system\extension.jar";"C:\TmaxSoft\JEUS6.0\lib\system\classloader.jar" -c

lasspath "C:\TmaxSoft\JEUS6.0\lib\system\bootstrap.jar" -Djava.endorsed.dirs="C:

제8장 시스템 설정 79

\TmaxSoft\JEUS6.0\lib\endorsed" -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rm

i.dgc.server.gcInterval=3600000 -Djeus.jvm.version=hotspot -Djeus.home="C:\TmaxS

oft\JEUS6.0" -Djava.naming.factory.initial=jeus.jndi.JNSContextFactory -Djava.na

ming.factory.url.pkgs=jeus.jndi.jns.url -Djava.library.path="C:\TmaxSoft\JEUS6.0

\lib\system" -Djeus.baseport=9736 -Djava.util.logging.config.file="C:\TmaxSoft\J

EUS6.0\bin\logging.properties" -Djeus.properties.replicate=jeus,java.util.loggin

g,sun.rmi.dgc -Djeus.tool.webadmin.locale.language=ko -Djava.net.preferIPv4Stack

=true -Djeus.management.simple.log=true jeus.server.JeusBootstrapper

[2007.05.19 13:33:39][1][] [client-10] initialize virtual DNS table, enable : tr

ue, table : {shimbh:9736=johan}

[2007.05.19 13:33:40][0][b037] [johan-10] [MGR-0411] virtual host name of this m

anager : johan

[Network Configuration] default local hostname : null, default local ip : null,

local inetaddress : shimbh/192.168.1.210, local host address : 192.168.1.210,

full host name : shimbh, local hostname : shimbh

[RMI Configuration] Default RMI export port for this container : 9743

[SystemProperty] The system property is set but has no corresponding jeus proper

ty, maybe typographical error : jeus.management.simple.log

[2007.05.19 13:33:48][2][b037] [johan-10] jeus.server.useListenPortPerContainer=

true

[2007.05.19 13:33:48][2][b037] [johan-10] The id of this container johan_contain

er1 is 63

[2007.05.19 13:33:48][2][b037] [johan-10] The base port of this container johan_

container1 is 10381

[2007.05.19 13:33:48][3][b037] [johan-10] [MGR-0239] JEUSMain.xml is loaded

[2007.05.19 13:33:50:390] webt.properties file is not found

[2007.05.19 13:33:57][0][b037] [johan-10] [MGR-0241] JeusServer is Ready

2. 웹 브라우저를 사용해서 WebAdmin에 접속한다.

http://localhost:9744/webadmin

[그림 8.1] 로그인 화면

참고

JEUS의 Base Port 는 9736이며, WebAdmin은 Base Port + 8 을 사용한다.

80 JEUS 설치 및 시작하기

3. JEUS를 설치할 때 설정해 주었던 JEUS에 대한 로그인 ID와 패스워드를 입력한다. 성공적으로 인증되

었다면 다음과 같은 WebAdmin 초기 화면이 나타난다.

[그림 8.2] 초기 화면

제8장 시스템 설정 81

JEUS 노드 트리에 JEUS를 관리하기 위한 요소들이 노드명을 루트 노드로 하여 트리 형태로 구성되어

있다. 다음 그림에서 보는 것과 같이 JEUS 노드 트리는 크게 엔진 컨테이너, JEUS 매니저 리소스, JEUS

매니저 서비스, 어플리케이션 모듈 디플로이, JEUS 모니터링으로 구성되어 있다.

[그림 8.3] JEUS 노드 트리

엔진과 관련된 설정 변경은 각 엔진에 해당되는 설정 파일에 반영되며, 루트 노드(예: johan)를 선택했

을 때 나오는 설정 항목과 엔진 컨테이너 설정, JEUS 매니저 리소스 설정, JEUS 매니저 설정, 영구모

듈 설정은 JEUS의 설정 파일에 반영된다.

JEUS와 각 엔진을 구동하기 위한 설정 파일들은 다음의 위치에 존재한다.

● JEUS 메인

JEUS_HOME\config\<nodename>\JEUSMain.xml

● EJB 엔진

JEUS_HOME\config\<nodename>\<nodename>_ejb_<enginename>\EJBMain.xml

● 서블릿 엔진

JEUS_HOME\ config\<nodename>\<nodename>_servlet_<enginename>\WEBMain.xml

● JMS 엔진

JEUS_HOME\ config\<nodename>\<nodename>_jms_<enginename>\JMSMain.xml

82 JEUS 설치 및 시작하기

8.1.2. 컴포넌트 추가와 설정

엔진이란 Java EE스펙을 만족하는 JEUS 엔진이다. JEUS에는 EJB 엔진, 서블릿 엔진, JMS 엔진, 웹 서

버(Web Server) 엔진의 4가지의 엔진 타입이 있다. 이 엔진들은 하나의 엔진 컨테이너 내에 존재한다. 단,

같은 엔진 컨테이너 내에 동일한 타입의 엔진이 2개 이상 존재할 수 없다.

JEUS는 기본적으로 하나 이상의 엔진 컨테이너를 필요로 하며, 설치할 때 하나의 엔진 컨테이너와 EJB

엔진, 서블릿 엔진을 포함한다. 엔진 컨테이너를 추가하는 방법은 기존의 엔진 컨테이너를 복사하는 방법

과 새로운 엔진 컨테이너를 생성한 후 엔진을 추가하는 방법이 있다.

컴포넌트 추가

다음은 새로운 엔진 컨테이너를 추가하고, 추가된 엔진 컨테이너에 EJB 엔진과 서블릿 엔진을 추가하는

방법이다.

1. JEUS 노드 트리에서 루트 노드 아래 [엔진 컨테이너]를 클릭한다.

[그림 8.4] 엔진 컨테이너 개요

제8장 시스템 설정 83

2. Main View에서 [새 엔진 컨테이너 생성]을 클릭하고 엔진 컨테이너 이름을 입력한다. 엔진은 하나 이

상 필수로 추가해야 하므로 여기에서는 EJB 엔진을 추가한다.

[그림 8.5] 엔진 컨테이너 생성

3. 엔진 컨테이너를 추가하라는 팝업 화면에서 [확인] 버튼을 클릭한다. 새 엔진 컨테이너 생성이 성공할

경우 다음과 같은 화면이 나타난다.

[그림 8.6] 엔진 컨테이너 생성 후

84 JEUS 설치 및 시작하기

4. 엔진 컨테이너에 엔진을 추가하기 위해 JEUS 노드 트리에서 생성한 엔진 컨테이너의 [엔진]을 클릭한

다.

[그림 8.7] 엔진 개요

5. [새 서블릿 엔진 생성]을 클릭하고, 엔진 이름을 입력한다.

[그림 8.8] 엔진 생성

6. [확인] 버튼을 클릭하면 새로 생성된 서블릿 엔진을 확인할 수 있다.

[그림 8.9] 엔진 생성 후

제8장 시스템 설정 85

컴포넌트 설정

새로 추가된 엔진 컨테이너를 구동하기 위한 설정은 기본 설정으로 충분하며, 서블릿 엔진이 있을 경우 컨

텍스트 그룹에 등록된 Web Listener Port가 중복되지 않도록 설정해야 한다.

새로 생성된 엔진 컨테이너의 [서블릿 엔진] > [MyGroup] > [lsnr1]을 클릭하면 다음과 같은 Web Listener

설정 화면이 나타난다.

[그림 8.10] Web Listener 설정

참고

다른 엔진 컨테이너의 서블릿 엔진에서 사용하는 Web Listener Port와 중복되지 않도록 설정한다.

8.1.3. 데이터 소스 추가

데이터 소스(Data source)는 Database와 Java EE 프로그램을 연결하기 위해 사용된다.

예제에서는 JEUS에 기본적으로 포함되어 있는 Apache Derby DB를 사용한다. Apache Derby는

JEUS_HOME\derby에 포함되어 있다. 만약 Derby가 실행되어 있지 않다면 다음과 같이 실행한다.

UNIX/LINUX에서 또는 Windows의 명령 프롬프트에서 다음과 같이 실행한다.

JEUS_HOME\bin> startderby

추후에 Derby를 종료하기 위해서는 다음과 같이 실행한다.

JEUS_HOME\bin> stopderby

참고

Derby를 JEUS에서 사용하려면 Derby의 JDBC 드라이버 파일인 derbyclient.jar가

JEUS_HOME\lib\datasource에 위치해야 한다(기본적으로 포함되어 있음).http://db.apache.org/derby/

Derby에 대한 자세한 내용은 http://db.apache.org/derby/를 참고한다.

86 JEUS 설치 및 시작하기

예제에서는 sample이라고 하는 데이터베이스를 jdbc/sample이라는 데이터 소스 이름으로 사용한다. 다

음은 데이터 소스를 추가하는 방법에 대한 설명이다.

1. JEUS 노드 트리에서 [JEUS 매니저 리소스] > [JDBC]를 선택한다. Main View에서 [새 JDBC 데이터

소스 생성]을 클릭한다.

[그림 8.11] JDBC 데이터소스

2. [1. 데이터 소스] 탭의 데이터 소스 설정 화면에서 ‘DBMS’는 Derby를, ‘가능한 데이터 소스들’에서는

Derby Connection PoolDataSource를 선택한다.

[그림 8.12] 데이터소스 선택

3. 데이터 소스의 속성을 설정한다. 입력 항목들이 기본값으로 설정되어 표시된다. 다음과 같이 입력하고

[다음] 버튼을 클릭하여 [2. 속성] 탭에서 속성을 설정한다.

Export Name: datasource1

추가 속성들:

ServerName=localhost

DatabaseName=sample

User=app

Password=app

제8장 시스템 설정 87

[그림 8.13] 데이터소스 속성

4. [3. 연결 풀] 탭에서 데이터 소스의 연결 풀을 설정한다. 입력 항목들이 기본값으로 설정되어 출력된다.

다음과 같이 입력하고 [생성] 버튼을 클릭한다.

[그림 8.14] 데이터소스 연결풀

88 JEUS 설치 및 시작하기

5. 데이터 소스가 정상적으로 설정되었는지 확인한다.

[그림 8.15] 데이터소스 생성 후

참고

데이터 소스 설정은 JEUS 설정 파일에 반영된다. JEUS 노드 트리에 [JEUS 매니저 리소스] > [JDBC]

하위에 데이터 소스 이름의 트리 노드가 생성되며, 바인드할 경우 루트 노드의 [JNDI트리]에서 데이

터소스를 확인할 수 있다.

Connection Pool 데이터 소스일 경우 설정 후 바로 Connection Pool이 생성되지 않고, Java EE 모듈에

서 처음 데이터 소스를 사용할 때, 모듈이 Deploy된 엔진 켄테이너의 [리소스] >[JDBC] 하위에 나타난

다. 데이터 소스의 정상적인 동작 여부 또한 커넥션을 처음 사용할 경우 알 수 있다.

8.1.4. WebAdmin에서 JEUS 기동

WebAdmin을 통해 JEUS를 기동하는 경우 JEUS Manager가 실행된 상태여야 한다. JEUS Manager가 실

행된 상태에서 WebAdmin을 통해 노드의 컨테이너를 Boot, Down시킬 수 있고 JEUS Manager를 종료시

킬 수 있다.

다음은 WebAdmin에서 JEUS를 기동하는 과정에 대한 설명이다.

1. JEUS 노드 트리에서 루트 노드를 선택한다.

2. Main View 에서 [제어] 탭을 클릭하면, 다음와 같이 [부트], [다운], [종료] 메뉴가 나타난다. 현재 노드

의 컨테이너가 Booting되지 않은 상태이므로, [부트] 탭을 선택하면 Booting 가능한 노드가 나타난다.

[그림 8.16] JEUS 매니저의 제어 중 부트 화면

제8장 시스템 설정 89

3. 앞에서 추가한 컨테이너를 Booting하려면 JEUS를 재기동해야 한다. 그러므로 우선 [종료] 탭을 클릭해

서 JEUS를 완전히 종료 한다. 만약 JEUS 매니저만 뜬 상태라면 컨테이너를 추가해도 JEUS를 종료할

필요 없이 바로 부트해도 된다.

[그림 8.17] JEUS 매니저의 제어 중 종료 화면

4. JEUS가 완전히 종료된 것을 확인한 다음, JEUS를 다시 실행한다. 그리고 전과 같은 방법으로 WebAdmin

을 실행한다.

5. [부트] 탭에서 노드를 선택하고 [확인] 버튼을 클릭하면 JEUS가 기동된다.

참고

엔진 컨테이너를 개별적으로 Boot, Down할 수 있다. JEUS 노드 트리에서 [엔진 컨테이너]를 선택하

면 [그림 8.18]과 같은 메뉴를 볼 수 있다.

[그림 8.18] 엔진 컨테이너 제어

8.2. Text Editor 사용Text Editor 사용해서 수동으로 환경설정을 하는 방법은 다음의 순서로 설명한다.

● 수동으로 환경설정하는 방법

- 환경설정

- 시스템 기동 방법

90 JEUS 설치 및 시작하기

WebAdmin을 사용할 수 없는 환경에서 텍스트 기반으로 편집할 경우 "JEUS Server 안내서", "JEUS EJB

안내서", "JEUS Web Container 안내서", "JEUS JMS 안내서"의 부록이나 해당 스키마를 참조하면 설정하

는데 도움이 될 수 있다. 스키마 파일은 JEUS_HOME\lib\schemas\jeus 아래에서 참조할 수 있다.

8.2.1. 환경설정

WebAdmin이 아닌 Text Editor를 이용하여 "JEUS_HOME\config\<node name>\JEUSMain.xml" 파일을

생성하고 설정할 수 있다.

JEUS를 설치할 때 설정되는 노드 이름은 해당 호스트 머신의 네트워크 ID명이다. Windows에서는 hostname

이라는 명령어를 통해, UNIX에서는 uname -an이라는 명령어를 통해 알아낼 수 있다. 만약 JEUS의 Virtu

alHost 기능을 사용한다면, vhost.properties 파일을 참고해서 적절한 노드 이름을 선택해서 작업한다.

다음 JEUSMain.xml 예제는 이전 절의 모든 설정값(노드, 엔진 컨테이너, EJB 엔진, 서블릿 엔진, 데이터

베이스 커넥션)을 적용한 것이다.

[예 8.1] <<JEUSMain.xml>>

<?xml version="1.0" encoding="utf-8"?>

<jeus-system xmlns="http://www.tmaxsoft.com/xml/ns/jeus" version="6.0">

<node>

<name>johan</name>

<engine-container>

<name>container1</name>

<engine-command>

<type>ws</type>

<name>engine1</name>

</engine-command>

<engine-command>

<type>jms</type>

<name>engine1</name>

</engine-command>

<engine-command>

<type>ejb</type>

<name>engine1</name>

</engine-command>

<engine-command>

<type>servlet</type>

<name>engine1</name>

</engine-command>

<sequential-start>true</sequential-start>

</engine-container>

<engine-container>

<name>container2</name>

<engine-command>

<type>ejb</type>

<name>engine2</name>

제8장 시스템 설정 91

</engine-command>

<engine-command>

<type>servlet</type>

<name>engine2</name>

</engine-command>

</engine-container>

<class-ftp>true</class-ftp>

<sequential-start>true</sequential-start>

<enable-webadmin>true</enable-webadmin>

</node>

<resource>

<data-source>

<database>

<vendor>others</vendor>

<export-name>jdbc/sample</export-name>

<data-source-class-name>

org.apache.derby.jdbc.ClientConnectionPoolDataSource

</data-source-class-name>

<data-source-type>DataSource</data-source-type>

<auto-commit>true</auto-commit>

<property>

<name>PortNumber</name>

<type>java.lang.Integer</type>

<value>1527</value>

</property>

<property>

<name>Password</name>

<type>java.lang.String</type>

<value>app</value>

</property>

<property>

<name>ServerName</name>

<type>java.lang.String</type>

<value>localhost</value>

</property>

<property>

<name>ConnectionAttributes</name>

<type>java.lang.String</type>

<value>;create=true</value>

</property>

<property>

<name>DatabaseName</name>

<type>java.lang.String</type>

<value>sample</value>

</property>

<property>

<name>User</name>

92 JEUS 설치 및 시작하기

<type>java.lang.String</type>

<value>app</value>

</property>

</database>

</data-source>

</resource>

</jeus-system>

JEUSMain.xml 파일에 EJB 엔진과 서블릿 엔진만 정의하는 것으로는 충분하지 않다. 추가적으로 이들 엔

진의 설정 파일이 필요한데, 이 설정은 JEUS에서 EJB 엔진과 서블릿 엔진을 시작하기 위해 필요하다. EJB

엔진을 위해서는 EJBMain.xml이, 서블릿 엔진을 위해서는 WEBMain.xml 파일이 필요하다.

[예 8.2] <<EJBMain.xml>>

<?xml version="1.0"?>

<ejb-engine xmlns="http://www.tmaxsoft.com/xml/ns/jeus" version="6.0">

</ejb-engine>

[예 8.3] <<WEBMain.xml>>

<?xml version="1.0" encoding="UTF-8"?>

<web-container xmlns="http://www.tmaxsoft.com/xml/ns/jeus" version="6.0">

<context-group>

<group-name>MyGroup</group-name>

<webserver-connection>

<http-listener>

<listener-id>http1</listener-id>

<port>8088</port>

<output-buffer-size>8192</output-buffer-size>

<thread-pool>

<min>10</min>

<max>20</max>

<step>1</step>

<max-idle-time>300000</max-idle-time>

<max-wait-queue>4</max-wait-queue>

<max-queue>-1</max-queue>

</thread-pool>

<postdata-read-timeout>30000</postdata-read-timeout>

<back-log>50</back-log>

<server-access-control>false</server-access-control>

</http-listener>

</webserver-connection>

</context-group>

</web-container>

제8장 시스템 설정 93

8.2.2. 콘솔 창에서 JEUS 기동

JEUSMain.xml, EJBMain.xml 과 WEBMain.xml을 위와 같이 설정했다면 JEUS를 시작할 준비가 된 것이

다. 콘솔 창에서 ‘jeus‘라는 명령어를 통해 JEUS Manager를 시작한다. 그러면 JEUS를 시작하고 엔진 컨

테이너나 엔진을 시작시킬 수 있는 stand-by 모드로 들어가게 된다.

1. 콘솔 창에 ‘jeus’라고 입력한다.

C:\Documents and Settings\Administrator>jeus

**************************************************************

- JEUS Home : C:\TmaxSoft\JEUS6.0

- JEUS Base Port : 9736

- Added Java Option :

- Java Vendor : Sun

**************************************************************

"D:\java\1.5.0.7\bin\java" -server -Xmx512m -Xbootclasspath/p:"C:\TmaxSoft\JEUS6

.0\lib\system\extension.jar";"C:\TmaxSoft\JEUS6.0\lib\system\classloader.jar" -c

lasspath "C:\TmaxSoft\JEUS6.0\lib\system\bootstrap.jar" -Djava.endorsed.dirs="C:

\TmaxSoft\JEUS6.0\lib\endorsed" -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rm

i.dgc.server.gcInterval=3600000 -Djeus.jvm.version=hotspot -Djeus.home="C:\TmaxS

oft\JEUS6.0" -Djava.naming.factory.initial=jeus.jndi.JNSContextFactory -Djava.na

ming.factory.url.pkgs=jeus.jndi.jns.url -Djava.library.path="C:\TmaxSoft\JEUS6.0

\lib\system" -Djeus.baseport=9736 -Djava.util.logging.config.file="C:\TmaxSoft\J

EUS6.0\bin\logging.properties" -Djeus.properties.replicate=jeus,java.util.loggin

g,sun.rmi.dgc -Djeus.tool.webadmin.locale.language=ko -Djava.net.preferIPv4Stack

=true -Djeus.management.simple.log=true jeus.server.JeusBootstrapper

[2007.05.19 13:33:39][1][] [client-10] initialize virtual DNS table, enable : tr

ue, table : {shimbh:9736=johan}

[2007.05.19 13:33:40][0][b037] [johan-10] [MGR-0411] virtual host name of this m

anager : johan

[Network Configuration] default local hostname : null, default local ip : null,

local inetaddress : shimbh/192.168.1.210, local host address : 192.168.1.210, fu

ll host name : shimbh, local hostname : shimbh

[RMI Configuration] Default RMI export port for this container : 9743

[SystemProperty] The system property is set but has no corresponding jeus proper

ty, maybe typographical error : jeus.management.simple.log

[2007.05.19 13:33:48][2][b037] [johan-10] jeus.server.useListenPortPerContainer=

true

[2007.05.19 13:33:48][2][b037] [johan-10] The id of this container johan_contain

er1 is 63

[2007.05.19 13:33:48][2][b037] [johan-10] The base port of this container johan_

container1 is 10381

[2007.05.19 13:33:48][3][b037] [johan-10] [MGR-0239] JEUSMain.xml is loaded

[2007.05.19 13:33:50:390] webt.properties file is not found

[2007.05.19 13:33:57][0][b037] [johan-10] [MGR-0241] JeusServer is Ready

2. “JeusServer is Ready” 메시지가 콘솔 창에 나타나면 기동시킬 수 있는 준비가 된 것이다.

94 JEUS 설치 및 시작하기

3. JEUS의 bin 디렉터리에 있는 콘솔 툴인 ‘jeusadmin’을 실행시킨다.

“jeusadmin <node name>”이라고 실행시키며, nodename은 JEUS 노드의 이름을 가리킨다(예제의 경

우 “johan”가 된다). JEUS를 설치할 때 정의 했던 관리자의 ID와 패스워드를 입력한다. 관리자의 ID는

기본적으로 "administrator"로 설정되어 있다.

C:\TmaxSoft\JEUS6.0\bin>jeusadmin johan

Login name>administrator

Password>

JEUS 6.0 Jeus Manager Controller

johan>

4. “johan>” 라는 jeusadmin prompt가 나타나면 JEUS를 제어할 수 있게 된다. 앞서 ‘jeus’ 커맨드로 실행

시킨 JEUS Manager에 명령을 전달함으로써 제어한다.

5. JEUS와 설정된 EJB/서블릿 엔진을 실행시키기 위해 ‘boot’라는 명령어를 입력한다.

johan>boot

johan_container1

johan_conatiner2

6. prompt가 나타나면 JEUS가 기동된 것이다.

7. EJB와 서블릿 엔진이 정상적으로 기동되었는지 확인하기 위해 jeusadmin prompt에서 ‘allenglist’를 실

행한다.

johan>allenglist

========================================

engines in the container johan_container1

johan_ws_engine1

johan_jms_engine1

johan_ejb_engine1

johan_servlet_engine1

========================================

========================================

engines in the container johan_container2

johan_ejb_engine2

johan_servlet_engine2

========================================

8. jeusadmin prompt에서 ‘down’명령어를 실행하면 JEUS가 종료된다.

johan>down

Do you really want to down whole JEUS? (y : n):>y

johan down successful

제8장 시스템 설정 95

9. jeusadmin prompt에서 ‘jeusexit’를 입력하면 JEUS Manager가 완전히 종료되고 ‘exit’를 입력하면 jeu

sadmin이 종료된다.

johan>jeusexit

johan jeusexit successful

96 JEUS 설치 및 시작하기

제9장 WebTier 사용하기

본 장에서는 예제를 통해서 서블릿, JSP, JSTL, JSF 애플리케이션의 배치와 WAR(Web application ARchive)

모듈의 패키징과 배치에 대해서 설명한다.

9.1. 예제본 절에서는 웹 애플리케이션의 간단한 예제 코드를 작성하고, 해당 소스의 컴파일과 배치 과정을 설명한

다.

참고

자세한 내용은 "JEUS Server 안내서", "JEUS Web Container 안내서", "JEUS Web Service 안내서"를

참조한다.

다음의 HelloWorldServlet.java는 웹 브라우저에 간단히 “Hello World!”라는 메시지를 출력하는 예제 서블

릿이다. 예제는 다음 위치의 디렉터리에서 찾을 수 있다.

JEUS_HOME\samples\getting_started\helloservlet\src\java

[예 9.1] <<HelloWorldServlet.java>>

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class HelloWorldServlet extends HttpServlet

{

public void doGet(HttpServletRequest req, HttpServletResponse res)

throws IOException, ServletException

{

res.setContentType("text/html");

PrintWriter out = res.getWriter();

out.println("<HTML>");

out.println("<HEAD>");

out.println("<TITLE>Hello World Sample</TITLE>");

out.println("</HEAD>");

out.println("<BODY>");

out.println("<CENTER><H1>Hello World!</H1></CENTER>");

out.println("</BODY>");

제9장 WebTier 사용하기 97

out.println("</HTML>");

out.close();

}

}

다음의 snoop.jsp는 요청을 받았을 때 request에 대한 몇 가지 정보를 보여주는 “snoop.jsp”라는 샘플 JSP

프로그램이다.

예제는 다음 위치의 디렉터리에서 찾을 수 있다.

JEUS_HOME\samples\getting_started\helloservlet\web

[예 9.2] <<snoop.jsp>>

<html>

<body bgcolor="white">

<h2> Request Information </h2>

<font size="4">

JSP Request Method: <%= request.getMethod() %>

<br>

Request URI: <%= request.getRequestURI() %>

<br>

Request Protocol: <%= request.getProtocol() %>

<br>

Servlet path: <%= request.getServletPath() %>

<br>

Path info: <%= request.getPathInfo() %>

<br>

Path translated: <%= request.getPathTranslated() %>

<br>

Query string: <%= request.getQueryString() %>

<br>

Content length: <%= request.getContentLength() %>

<br>

Content type: <%= request.getContentType() %>

<br>

Server name: <%= request.getServerName() %>

<br>

Server port: <%= request.getServerPort() %>

<br>

Remote user: <%= request.getRemoteUser() %>

<br>

Remote address: <%= request.getRemoteAddr() %>

<br>

Remote host: <%= request.getRemoteHost() %>

98 JEUS 설치 및 시작하기

<br>

Authorization scheme: <%= request.getAuthType() %>

<hr>

The browser you are using is <%= request.getHeader("User-Agent") %>

<hr>

</font>

</body>

</html>

다음은 snoop.jsp와 똑같은 일을 하지만 JSTL과 JSF를 사용한 'snoop-jstl.jsp'라는 샘플 JSP 프로그램이

다.

[예 9.3] <<snoop-jstl.jsp>>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

<html>

<body>

<h2> Request Information </h2>

<font size="4">

<c:set var="req" value="${pageContext.request}"/>

JSP Request Method: <c:out value="${req.method}"/>

<br/>

Request Protocol: <c:out value="${req.protocol}"/>

<br/>

Servlet path: <c:out value="${req.servletPath}"/>

<br/>

Path info: <c:out value="${req.pathInfo}"/>

<br/>

Path translated: <c:out value="${req.pathTranslated}"/>

<br/>

Query string: <c:out value="${req.queryString}"/>

<br/>

Content length: <c:out value="${req.contentLength}"/>

<br/>

Content type: <c:out value="${req.contentType}"/>

<br/>

Server name: <c:out value="${req.serverName}"/>

<br/>

Server port: <c:out value="${req.serverPort}"/>

<br/>

Remote user: <c:out value="${req.remoteUser}"/>

<br/>

Remote address: <c:out value="${req.remoteAddr}"/>

<br/>

Remote host: <c:out value="${req.remoteHost}"/>

제9장 WebTier 사용하기 99

<br/>

Authorization scheme: <c:out value="${req.authType}"/>

<hr/>

<f:view>

The browser you are using is <h:outputText value=

"#{header['User-Agent']}"/>

</f:view>

<hr/>

</font>

</body>

</html>

이 예제는 JSP이므로 사용자가 컴파일할 필요 없이 서블릿 엔진이 자동으로 컴파일한다. 다만 'snoop.jsp'를

넣을 jsp 디렉터리가 필요하다.

9.2. 컴파일작성한 서블릿 소스 파일을 컴파일하기 위해서는 서블릿이 사용하는 클래스들과 인터페이스가 클래스 패

스에 설정되어 있어야 한다. 또한 컴파일을 위해서는 기본적인 Java의 클래스 패스 외에 JEUS의 classpath

역시 클래스 패스에 추가되어야 한다. 만일 JEUS가 'C:\TmaxSoft\JEUS6.0'이라는 디렉터리에 설치되어

있다면 'C:\TmaxSoft\JEUS6.0\lib\system\javaee.jar' 역시 클래스 패스에 추가되어야 한다.

예)

C:\TmaxSoft\JEUS6.0\samples\getting_started\helloservlet\src\java>javac -classpath

C:\TmaxSoft\JEUS6.0\lib\system\javaee.jar -d . *.java

컴파일 후 'HelloWorldServlet.class'란 파일이 컴파일을 수행한 디렉터리에 생성된다.

‘helloworld’라는 디렉터리를 'C:\TmaxSoft\JEUS6.0\samples\getting_started\helloservlet' 아래에 생성한

다. ‘helloworld’라는 디렉터리 아래에 ‘WEB-INF’라는 디렉터리를 만든 뒤, WEB-INF 디렉터리 아래에 다

시 ‘classes’라는 디렉터리를 만들고 패키지 구조에 따라 'HelloWorldServlet.class'를 복사한다. 예제에서

는 anonymous 패키지이므로 별도의 디렉터리 없이 WEB-INF\classes로 복사하기만 하면 된다.

그리고 snoop.jsp와 snoop-jstl.jsp를 ‘helloworld’ 디렉터리에 복사한다.

예)

C:\TmaxSoft\JEUS6.0\samples\getting_started\helloservlet\src\java>copy HelloWorld

Servlet.class ..\..\helloworld\WEB-INF\classes

100 JEUS 설치 및 시작하기

9.3. WAR 모듈 패키징소스 파일을 작성하고 컴파일에 성공하였다면 다음의 절차에 따라 Java EE WAR 파일을 패키징한다.

예제 파일은 다음의 경로에서 찾을 수 있다.

JEUS_HOME\samples\getting_started\helloservlet\src\conf

1. Text Editor를 사용하여 다음과 같은 내용으로 web.xml과 jeus-web-dd.xml 파일을 작성하여 WEB-INF

디렉터리에 저장한다.

[예 9.4] <<jeus-web-dd.xml>>

<?xml version="1.0" encoding="UTF-8"?>

<jeus-web-dd xmlns="http://www.tmaxsoft.com/xml/ns/jeus" version="6.0">

<context-path>/helloworld</context-path>

</jeus-web-dd>

[예 9.5] <<web.xml>>

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee">

<display-name>Web Tier Tutorial</display-name>

<servlet>

<servlet-name>Hello World Servlet</servlet-name>

<servlet-class>HelloWorldServlet</servlet-class>

</servlet>

<servlet>

<servlet-name>Faces Servlet</servlet-name>

<servlet-class>

javax.faces.webapp.FacesServlet

</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>Hello World Servlet</servlet-name>

<url-pattern>/HelloWorldServlet</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>Faces Servlet</servlet-name>

<url-pattern>*.jsf</url-pattern>

</servlet-mapping>

</web-app>

2. jar 명령으로 hello 디렉터리의 내용을 WAR 모듈로 묶는다.

예)

C:\TmaxSoft\JEUS6.0\samples\getting_started\helloservlet>jar cvf

helloworld.war –C helloworld/ .

제9장 WebTier 사용하기 101

9.4. Deploy패키징된 WAR 모듈은 WebAdmin이나 콘솔을 이용해서 Deploy한다.

WebAdmin으로 WAR 모듈 Deploy하기

패키징한 WAR 모듈은 WebAdmin과 콘솔 툴로 Deploy할 수 있다. WebAdmin에서는 EJB모듈과 같이

WAR 모듈에 대해 archive 모드, exploded 모드를 제공한다. 또한, JEUS가 기동되는 시스템의 임의의 디

렉터리에 웹 애플리케이션이 존재할 경우 exploded 모드로 Deploy할 수 있는 기능을 제공한다.

이 기능은 Node View의 엔진 컨테이너 하위에 [Java EE 어플리케이션 모듈]을 선택했을 때, [새 웹 컨텍

스트 배치]라는 링크를 클릭함으로써 사용할 수 있다.

참고

Deploy에 대한 자세한 내용은 자세한 내용은 "JEUS WebAdmin 안내서"를 참조한다.

여기서는 이전에 사용한 방법과 동일하게 WAR 모듈을 Deploy 해보도록 한다.

1. 웹 브라우저로 접속해서 로그인 한다.

2. Node View에서 [어플리케이션 모듈 디플로이]를 선택한다.

3. Deploy할 모듈을 선택하고 [다음] 버튼을 클릭한다.

[그림 9.1] WAR 모듈 deploy 초기화면

102 JEUS 설치 및 시작하기

4. Deploy할 엔진 컨테이너를 선택하고, 서블릿 엔진의 컨텍스트 그룹을 입력한 후 [다음] 버튼을 클릭한

다.

[그림 9.2] WAR 모듈 deploy 대상선택

5. 필요한 선택사항을 입력하고 [다음] 버튼을 클릭한다.

[그림 9.3] WAR 모듈 deploy 선택사항

제9장 WebTier 사용하기 103

6. Deploy 방식을 선택하고 [디플로이] 버튼을 클릭한다.

[그림 9.4] WAR 모듈 deploy

7. Deploy가 성공적으로 완료되면 Node View의 [어플리케이션 모듈] 아래 'helloworld'라고 나타난다.

[그림 9.5] WAR 모듈 deploy

104 JEUS 설치 및 시작하기

콘솔 툴로 WAR 모듈 Deploy하기

다음은 콘솔 툴을 사용하여 수동으로 WAR 모듈을 Deploy하는 과정이다. 단, 서블릿과 JSP는 이미 언급

한 대로 모두 컴파일된 것으로 가정한다.

1. 컴파일된 서블릿, JSP, XML 파일을 각각 다음과 같은 디렉터리 아래에 위치시킨다.

● 서블릿 파일

JEUS_HOME\webhome\app_home\<모듈명>\WEB-INF\classes

예)

C:\TmaxSoft\JEUS6.0\webhome\app_home\helloworld\WEB-INF\classes

● JSP 파일

JEUS_HOME\webhome\app_home\<모듈명>

예)

C:\TmaxSoft\JEUS6.0\webhome\app_home\helloworld

● XML 파일

JEUS_HOME\webhome\app_home\<모듈명>\WEB-INF

예)

C:\TmaxSoft\JEUS6.0\webhome\app_home\helloworld \WEB-INF

2. jeusadmin으로 JEUS에 접속한다.

jeusadmin johan –Uadministrator –Pjeusadmin

3. 접속이 되었다면 다음과 같은 순서로 명령을 입력한다.

johan>deploy -con johan_container1 helloworld

using the following application info : applicationType

path:helloworld.war

deployment-type:COMPONENT

class-ftp-unit:JAR

web-component

4. 모듈이 정상적으로 Deploy되었는지 확인하고, 다음절에서 Deploy한 WAR 모듈을 실행해 보도록 한다.

제9장 WebTier 사용하기 105

9.5. 실행 및 결과본 절에서는 Deploy된 서블릿과 JSP를 사용하는 방법을 설명한다. 우선 Servlet부터 사용해보자.

Deploy된 서블릿 사용 방법

Hello World 서블릿을 호출하기 위해서는 브라우저의 주소 창에 다음과 같이 입력한다.

http://localhost:8088/helloworld/HelloWorldServlet

서블릿 엔진이 정상적으로 기동된 상태이고, Hello World 서블릿이 정상적으로 Deploy되었다면 다음과

같은 화면이 나타난다.

[그림 9.6] WAR 모듈 서블릿 호출

주소 창에 입력한 URL(http://localhost:8088/helloworld/HelloWorldServlet)의 의미는 다음과 같다.

[표 9.1] 서블릿 Request Path의 항목과 의미

설명항목

JEUS에 접속할 때 사용하는 HTTP 프로토콜을 의미한다.http

서비스를 제공하는 서버가 브라우저와 동일한 자신의 주소에 있음을 의미한다.Localhost

Context Group의 HTTP listener의 포트 번호이다.8088

웹 애플리케이션의 context용 request path이다. Context group의 request path가 아

님에 주의해야 한다. Context Group은 오직 포트 번호의 구분을 통해서만 요청을 분

리할 수 있다. 이 request path는 WEBMain.xml의 context-path element에 설정되며,

이 값을 지정하지 않을 경우 WAR 모듈 파일의 이름과 동일하다.

helloworld

서블릿에 정의된 URL 패턴이다.HelloWorld

Servlet

106 JEUS 설치 및 시작하기

Deploy된 JSP 사용 방법

Deploy된 JSP 사용하는 방법

● snoop.jsp 페이지를 호출

snoop.jsp페이지를 호출하려면 다음의 주소를 웹 브라우저 주소 창을 통해 호출한다(JSP의 경우 최초

로 호출하는 경우 서블릿 엔진이 자동으로 컴파일을 수행하므로 약간 늦게 실행된다).

http://localhost:8088/helloworld/faces/snoop.jsp

[그림 9.7] WAR 모듈 JSP 호출

● snoop-jstl.jsp 페이지를 호출

snoop-jstl.jsp페이지를 호출하려면 다음 주소를 주소 창을 통해 호출하면 된다. 화면 결과는 snoop.jsp

와 동일하다.

http://localhost:8088/helloworld/snoop-jstl.jsf

제9장 WebTier 사용하기 107

제10장 EJB 사용하기

본 장에서는 예제를 이용해서 Stateless Session Bean과 Java Persistence API를 이용하여 Entity를 개발

하고 Deploy하는 과정을 설명한다.

10.1. Session Bean 예제Session Bean은 기본적으로 Business Interface와 Bean Class로 구성된다.

10.1.1. 예제

EJB 예제

다음의 예제 코드는 “Hello EJB”를 출력하는 Business Method를 가진 간단한 Stateless Session Bean 예

제이다. 예제 코드는 다음의 디렉터리에서 찾아볼 수 있다.

JEUS_HOME\samples\getting_started\helloejb\helloejb-ejb\src\java\helloejb

● Business Interface

[예 10.1] <<Hello.java>>

package helloejb;

import javax.ejb.Remote;

@Remote

public interface Hello {

String sayHello();

}

● Bean Class

[예 10.2] <<HelloBean.java>>

package helloejb;

import javax.ejb.Stateless;

@Stateless(mappedName="helloejb.Hello")

public class HelloBean implements Hello {

제10장 EJB 사용하기 109

public String sayHello() {

return "Hello EJB!";

}

}

서블릿 클라이언트 예제

HelloEJB를 호출하는 서블릿 클라이언트를 다음과 같이 구현한다. 예제 코드는 다음 위치의 디렉터리에

서 찾아볼 수 있다.

JEUS_HOME\samples\getting_started\helloejb\helloejb-war\src\java\helloejb

[예 10.3] <<HelloClient.java>>

package helloejb;

import java.io.*;

import javax.ejb.EJB;

import javax.servlet.*;

import javax.servlet.http.*;

public class HelloClient extends HttpServlet {

@EJB

private Hello hello;

protected void processRequest(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

PrintWriter out = response.getWriter();

try {

// Call session bean business method.

String msg = hello.sayHello();

response.setContentType("text/html");

out.println("<html>");

out.println("<head>");

out.println("<title>HelloClient</title>");

out.println("</head>");

out.println("<body>");

out.println("<center><h1>" + msg + "</h1></center>");

out.println("</body>");

out.println("</html>");

out.close();

110 JEUS 설치 및 시작하기

} catch(Exception ex){

response.setContentType("text/plain");

ex.printStackTrace(out);

}

}

protected void doGet(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

processRequest(request, response);

}

protected void doPost(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

processRequest(request, response);

}

}

10.1.2. 컴파일

작성된 예제는 Ant를 이용하여 다음과 같이 빌드할 수 있다.

%JEUS_HOME%\samples\getting_started\helloejb>ant build

빌드가 정상적으로 완료되면 'dist\helloejb.ear' 애플리케이션 EAR 파일이 생성된다.

10.1.3. Deploy

패키징한 EJB 애플리케이션을 WebAdmin과 콘솔 툴로 Deploy할 수 있다.

WebAdmin으로 Deploy하기

다음은 WebAdmin으로 Deploy하는 과정에 대한 설명이다.

1. 커맨드 창에서 ‘jeus’ 명령을 실행하고, 웹 브라우저로 접속한다.

2. Node View에서 [어플리케이션 모듈 디플로이]를 선택한다.

3. Main View에 모듈 Deploy를 위한 초기 화면이 나타난다. [1.모듈 선택] 탭에 보이는 것과 같이 Deploy

할 대상 모듈을 선택하는 화면으로, 3가지 방법을 제공한다.

제10장 EJB 사용하기 111

설명탭

JEUS_HOME\webhome\app_home 이나 JEUS_HOME \webhome\autodeploy 아래

있는 모듈을 보여주며, 이들 중 하나를 선택해 Deploy할 수 있다.

모듈

Deploy할 모듈이 존재하는 위치를 파일명을 포함해 지정한다. 모듈의 위치는 WebAd

min이 실행되는 머신이 아니고 JEUS가 구동되는 머신의 디렉터리이다.

절대 경로

WebAdmin이 실행되는 머신에서 JEUS가 구동되는 머신으로 파일을 업로드 할 수 있

으며, 업로드할 위치는 JEUS_HOME \webhome\app_home 이나

JEUS_HOME\webhome\autodeploy 중 하나를 선택할 수 있다.

파일 업로드

[모듈]이나 [절대 경로], [파일 업로드] 탭에서 모듈을 선택하고 [다음] 버튼을 클릭한다.

[그림 10.1] HelloEJB Deploy 초기화면

112 JEUS 설치 및 시작하기

4. 모듈 선택이 완료되면, Deploy할 대상이 엔진 컨테이너 단위로 나타난다. Deploy할 대상을 선택하고

[다음] 버튼을 클릭한다.

[그림 10.2] HelloEJB Deploy 대상 선택

5. Deploy할 때 필요한 선택 사항을 입력하는 화면으로, 애플리케이션 설정과 모듈 설정을 할 수 있다. 특

별한 설정이 필요 없으므로 [다음] 버튼을 클릭한다.

[그림 10.3] HelloEJB Deploy시 선택 사항

제10장 EJB 사용하기 113

6. Deploy할 방식을 선택하고 [디플로이] 버튼을 클릭한다.

[그림 10.4] HelloEJB Deploy

7. Deploy가 성공적으로 완료되면 Node View의 [어플리케이션 모듈] 아래 'helloejb'가 나타난다.

[그림 10.5] HelloEJB Deploy

콘솔 툴로 Deploy하기

다음은 콘솔 툴을 사용하여 수동으로 Deploy하는 과정에 대한 설명이다.

114 JEUS 설치 및 시작하기

1. 패키징된 'helloejb.ear' 파일을 다음 JEUS APP_HOME 디렉터리에 복사한다.

JEUS_HOME/webhome/app_home/

2. 콘솔 창에서 ‘jeusadmin’이라고 입력하면 jeusadmin 콘솔 툴이 실행된다. 다음과 같은 순서로 명령을

입력한다.

C:\TmaxSoft\JEUS6.0\bin>jeusadmin johan

Login name>administrator

Password>

JEUS 6 Jeus Manager Controller

node>deploy -con johan_container1 helloejb.ear

using the following application info :

...

node>applist –con johan_container1

name : helloejb

type : J2EEApplication ...

위의 명령을 살펴보면 ‘deploy <module name>’을 통해서 HelloEJB 애플리케이션을 Deploy하고, ‘applist’

를 이용하여 Deploy된 것을 확인했다. Deploy가 정상적으로 이루어졌다면 ‘exit’ 명령을 통하여 콘솔 툴

을 종료한다.

10.1.4. 실행 및 결과

Deploy가 완료되면 작성된 페이지를 실행해서 결과를 확인한다. 다음은 웹 클라이언트를 실행하는 과정

에 대한 설명이다.

1. 웹 브라우저를 통해 다음 URL로 접속하면 HelloEJB 웹 클라이언트로 접속할 수 있다.

http://localhost:8088/helloejb/

[그림 10.6] HelloEJB 클라이언트 화면

제10장 EJB 사용하기 115

2. 화면의 버튼을 클릭하면 EJB를 호출하는 HelloClient 서블릿을 실행시키며 다음과 같은 결과를 확인할

수 있다.

[그림 10.7] HelloEJB 서블릿 클라이언트 수행 결과

10.2. Java Persistence API 예제본 절에서는 Java Persistence API를 통해 Entity를 작성하고 컴파일하여 Deploy하는 과정을 설명한다.

10.2.1. 예제

EJB 예제

예제는 Product Entity와 이를 다루는 EJB인 ProductManager Session Bean으로 구성되어 있다.

예제 코드는 다음의 디렉터리에서 찾아볼 수 있다.

JEUS_HOME\samples\getting_started\hellojpa\hellojpa-ejb\src\java\hellojpa

● Entity

[예 10.4] <<Product.java>>

package hellojpa;

import java.io.Serializable;

import javax.persistence.Entity;

import javax.persistence.Id;

import javax.persistence.NamedQuery;

@Entity

@NamedQuery(name="findAllProducts", query="SELECT p FROM Product p")

116 JEUS 설치 및 시작하기

public class Product implements Serializable {

@Id

private String productId;

private double price;

private String description;

public Product() {

}

public Product(String productId, double price,

String description){

this.productId = productId;

this.price = price;

this.description = description;

}

public String getProductId() {

return productId;

}

public void setProductId(String id) {

this.productId = id;

}

public double getPrice() {

return price;

}

public void setPrice(double price) {

this.price = price;

}

public String getDescription() {

return description;

}

public void setDescription(String description) {

this.description = description;

}

public String toString() {

return "Product[productId=" + productId + ", price=" +

price + ", description=" + description + "]";

}

}

제10장 EJB 사용하기 117

● Business Interface

[예 10.5] <<ProductManager.java>>

package hellojpa;

import java.util.Collection;

import javax.ejb.Local;

@Local

public interface ProductManager {

Product createProduct(String productId, double price,

String desc);

Product getProduct(String productId);

Collection findAllProducts();

Collection findProductsByDescription(String desc);

Collection findProductsInRange(double low, double high);

void updateProduct(Product product);

void removeProduct(Product product);

void removeAllProducts();

}

● Bean Class

[예 10.6] <<ProductManagerBean.java>>

package hellojpa;

import java.util.Collection;

import javax.ejb.Stateless;

import javax.persistence.EntityManager;

import javax.persistence.PersistenceContext;

import javax.persistence.Query;

@Stateless(mappedName="hellojpa.ProductManager")

public class ProductManagerBean implements ProductManager {

@PersistenceContext

private EntityManager em;

public ProductManagerBean() {

}

118 JEUS 설치 및 시작하기

public Product createProduct(String productId, double price,

String desc){

Product product = new Product(productId, price, desc);

em.persist(product);

return product;

}

public Product getProduct(String productId){

return (Product)em.find(Product.class, productId);

}

public Collection findAllProducts() {

return em.createNamedQuery("findAllProducts").

getResultList();

}

public Collection findProductsByDescription(String desc){

Query query = em.createQuery("SELECT p FROM Product p WHERE

p.description=:desc");

query.setParameter("desc", desc);

return query.getResultList();

}

public Collection findProductsInRange(double low, double high){

Query query = em.createQuery("SELECT p FROM Product p WHERE

p.price between :low and :high");

query.setParameter("low", low).setParameter("high", high);

return query.getResultList();

}

public void updateProduct(Product product){

Product managed = em.merge(product);

em.flush();

}

public void removeProduct(Product product){

Product managed = em.merge(product);

em.remove(managed);

}

public void removeAllProducts(){

em.createQuery("DELETE FROM Product p").executeUpdate();

}

}

제10장 EJB 사용하기 119

서블릿 클라이언트 예제

ProductManager EJB를 사용하여 DB에 데이터를 저장하고 데이터를 다루는 서블릿 클라이언트를 다음

과 같이 구현한다.

예제코드는 다음의 디렉터리에서 찾아볼 수 있다.

JEUS_HOME\samples\getting_started\hellojpa\hellojpa-war\src\java\hellojpa

[예 10.7] <<ProductManagerClient.java>>

package hellojpa;

import java.io.*;

import java.util.Collection;

import javax.ejb.EJB;

import javax.servlet.*;

import javax.servlet.http.*;

public class ProductManagerClient extends HttpServlet {

@EJB

private ProductManager productManager;

protected void processRequest(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/plain");

PrintWriter out = response.getWriter();

out.println("SERVLET CLIENT CONSOLE OUTPUT:\n");

productManager.removeAllProducts();

out.println("Cleaned up existing products.\n");

out.println("Creating products...");

Product p1 = productManager.createProduct("1", 10.00,

"Ceramic Dog");

Product p2 = productManager.createProduct("2", 13.00,

"Wooden Duck");

Product p3 = productManager.createProduct("3", 19.00,

"Ivory Cat");

Product p4 = productManager.createProduct("4", 33.00,

"Ivory Cat");

Product p5 = productManager.createProduct("5", 22.00,

"Chrome Fish");

Collection products;

120 JEUS 설치 및 시작하기

out.println("Created products:");

products = productManager.findAllProducts();

for(Object product : products){

out.println(product);

}

out.println();

out.println("Find product with productId 1:");

Product pp1 = productManager.getProduct("1");

out.println("Found = " + pp1.getDescription() + " $" +

pp1.getPrice());

out.println("Update the price of this product to 12.00");

pp1.setPrice(12.00);

productManager.updateProduct(pp1);

Product pp2 = productManager.getProduct("1");

out.println("Product " + pp2.getDescription() +

" is now $" + pp2.getPrice());

out.println();

out.println("Find products with description:");

products =

productManager.findProductsByDescription("Ivory Cat");

for(Object product : products){

out.println(product);

}

out.println();

out.println("Find products with price range between 10.00

and 20.00");

products = productManager.findProductsInRange(10.00, 20.00);

for(Object product : products){

out.println(product);

}

out.println();

out.println("Removed all products.");

productManager.removeProduct(p1);

productManager.removeProduct(p2);

productManager.removeProduct(p3);

productManager.removeProduct(p4);

productManager.removeProduct(p5);

out.close();

}

제10장 EJB 사용하기 121

protected void doGet(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

processRequest(request, response);

}

protected void doPost(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

processRequest(request, response);

}

}

10.2.2. 컴파일

Ant를 이용하여 예제 코드를 다음과 같이 빌드할 수 있다. 다음은 컴파일하는 과정에 대한 설명이다.

1. 예제가 작성된 경로에서 다음과 같이 명령어를 입력한다.

C:\jeus\samples\getting_started\hellojpa>ant build

2. 빌드가 정상적으로 완료되면 dist\hellojpa.ear 애플리케이션 EAR 파일이 생성된다.

이번 예제는 DB를 필요로 하므로 Derby를 시작시키도록 한다. 또한 DB가 jdbc/sample 데이터 소스로

설정되어 있어야 한다. 자세한 것은 “제8장 시스템 설정”을 참고한다.

Derby가 시작되었다면 다음과 같이 DB 테이블을 생성하도록 한다. 여기서는 sample 이라고 하는 DB

를 사용할 것이다.

CREATE TABLE PRODUCT (PRODUCTID VARCHAR(255) NOT NULL, PRICE FLOAT,

DESCRIPTION VARCHAR(255), PRIMARY KEY (PRODUCTID));

3. 다음의 명령어를 입력해서 DB 테이블을 생성한다.

C:\jeus\samples\getting_started\hellojpa>ant setup

이제 빌드와 DB 설정이 완료되었다면 패키징된 모듈을 Deploy할 준비가 완료되었다.

10.2.3. Deploy

패키징한 EJB 애플리케이션을 WebAdmin과 콘솔 툴로 Deploy할 수 있다.

WebAdmin으로 Deploy하기

다음 과정에 따라 패키징된 모듈을 WebAdmin으로 Deploy 한다.

1. WebAdmin으로 접속한다.

122 JEUS 설치 및 시작하기

2. Node View에서 [어플리케이션 모듈 디플로이]를 선택한다.

3. Deploy할 모듈을 선택하고 [다음] 버튼을 클릭한다.

[그림 10.8] HelloJPA Deploy 초기 화면

4. Deploy할 컨테이너를 선택하고 [다음] 버튼을 클릭한다.

[그림 10.9] HelloJPA Deploy 대상 선택

제10장 EJB 사용하기 123

5. Deploy할 때 팔요한 선택 사항을 입력하는 화면으로, 애플리케이션 설정과 모듈 설정을 할 수 있다. 특

별한 설정이 필요 없으므로 [다음] 버튼을 클릭한다.

[그림 10.10] HelloJPA Deploy 선택 사항

6. Deploy할 방식을 선택하고 [디플로이] 버튼을 클릭한다.

[그림 10.11] HelloJPA Deploy 배치 옵션

124 JEUS 설치 및 시작하기

7. Deploy가 성공할 경우 [어플리케이션 모듈] 아래 'hellojpa' 가 나타난다.

[그림 10.12] Deploy된 HelloJPA

참고

“8.1.3. 데이터 소스 추가”에서 데이터 소스 설정 관련 부분에서 설명했지만, 데이터 소스 설정에서

패스워드가 틀렸거나 IP 주소가 정확하지 않을 경우에 Deploy는 실패하게 된다.

콘솔 툴로 Deploy하기콘솔 툴을 사용하여 수동으로 Deploy하는 방법은 다음과 같다.

1. 패키징된 hellojpa.ear 파일을 다음 JEUS APP_HOME 디렉터리에 복사한다.

JEUS_HOME/webhome/app_home/

2. 콘솔 창에서 ‘jeusadmin’이라고 입력하여 jeusadmin 콘솔 툴을 실행한다. 다음과 같은 순서로 명령을

입력한다.

C:\>jeusadmin johan

Login name>administrator

Password>

JEUS 6 Jeus Manager Controller

node>deploy -con johan_container1 hellojpa.ear

using the following application info :

...

node>applist –con johan_container1

name : hellojpa

type : J2EEApplication ...

제10장 EJB 사용하기 125

3. 모듈이 정상적으로 Deploy되었는지 확인한다.

10.2.4. 실행 및 결과

Deploy가 완료되면 작성된 페이지를 실행해서 결과를 확인한다. 다음은 웹 클라이언트를 실행하는 과정

에 대한 설명이다.

1. 웹 브라우저를 통해 다음 URL로 접속하면 HelloJPA 웹 클라이언트로 접속할 수 있다.

http://localhost:8088/hellojpa/

[그림 10.13] HelloJPA 클라이언트 화면

126 JEUS 설치 및 시작하기

2. 화면의 버튼을 클릭하면 EJB에 요청을 내리는 서블릿 클라이언트를 수행하고 다음과 같이 결과를 보

여준다.

[그림 10.14] HelloJPA 서블릿 클라이언트 수행 결과

제10장 EJB 사용하기 127

제11장 웹 서비스 사용하기

본 장에서는 JAX-WS 2.0을 활용한 웹 서비스의 생성과 클라이언트의 작성, 그리고 웹 서비스를 호출하는

내용을 설명한다.

11.1. 웹 서비스 생성JEUS 6에서는 Java EE 5 방식의 웹 서비스를 지원하며 JAX-WS 2.0은 Java EE 5웹 서비스의 핵심이다.

JAX-WS 2.0은 기존 JAX-RPC를 대체하는 수단으로 설계되었다. 새로운 모습으로 등장한 JAX-WS의 배

경으로는 JAXB 2.0의 등장이 있으며, JAXB 2.0은 모든 XML 스키마 타입을 완전히 지원하게 됨으로써 기

존에 존재했던 Java 타입과 XML 타입간의 매핑을 보다 명확하게 정의할 수 있게 되었고, 기존에 JAX-RPC

스펙에 존재하던 Java 타입과 XML 타입 간의 매핑에 대한 의존성을 제거할 수 있게한 원동력이 되었다.

여기에다 SOAP 1.2 메시지를 직접 다룰 수 있게 하는 SAAJ 1.3까지 포함하여, Java Web Services 2.0이

라는 새로운 웹 서비스 모델이 등장하게 된다.

11.1.1. From Java 방식

From Java 방식의 웹 서비스 생성은 기본적으로 다음과 같은 절차를 따른다.

1. 웹 서비스 Annotation이 포함된 서비스 구현 Bean의 작성

2. 타 벤더 간에 이식 가능한 산출물(Portable Artifact)의 생성

3. 웹 서비스 패키징과 배치

서비스 구현 Bean(Service Implementation Bean)의 작성

서비스 구현 Bean을 작성할 경우에는 몇 가지의 필수 제약 조건이 따르게 되는데, 이러한 필수 제약 조건

들은 다음과 같다.

● javax.jws.WebService Annotation을 포함시켜서 이 클래스가 서비스 구현 Bean임을 명시한다.

● 웹 서비스 메소드의 인자와 리턴 타입은 JAXB 2.0의 Java와 XML 스키마 간의 매핑 정의와 호환되어야

한다.

● 웹 서비스 메소드의 인자와 리턴 타입은 java.rmi.Remote 인터페이스를 직접 혹은 간접적으로 구현하

여서는 안된다.

이와 같은 요소들 말고도, javax.jws 패키지에 정의되어 있는 여러 Annotation을 활용하면 메소드의 인자

와 리턴 타입, 바인딩 방식 등의 커스터마이징이 가능하다. 그럼 간단한 예제 코드를 통해 실제 서비스 구

현 Bean이 어떻게 작성되어야 하는지 살펴 보도록 하자. 다음은 간단한 웹 서비스를 구현한 클래스를 보

여준다.

제11장 웹 서비스 사용하기 129

예제 코드는 "JEUS_HOME\samples\getting_started\webservices\from_java\src\java\fromjava\server"에

서 찾아볼 수 있다.

[예 11.1] <<AddNumbersImpl.java>>

package fromjava.server;

import javax.jws.WebService;

@WebService

public class AddNumbersImpl {

public int addNumbers(int number1, int number2) {

return number1 + number2;

}

}

JAX-WS 2.0에서는 기존 Java 클래스의 웹 서비스로의 공개가 아주 용이하며, 위 <리스트 1>에서 보는 바

와 같이 @WebService Annotation을 추가함으로써 기존의 Java 클래스를 쉽게 웹 서비스로 변환하여 만

들 수 있다.

타 벤더 간에 이식 가능한 산출물(Portable Artifact)의 생성

서비스 구현 Bean을 작성하고 컴파일 까지 수행하였다면, JAX-WS 런타임에서 사용할 타 벤더 간에 이식

가능한 산출물의 생성 작업이 필요하다. 여기서 타 벤더 간에 이식 가능한 산출물이란, JAX-WS 스펙을 준

수하는 모든 벤더에서 사용할 수 있는 JAX-WS 툴을 통해 만들어낸 산출물임을 의미하며, Java의 파라미

터를 실제 WSDL의 메시지로 정확하게 매핑하기 위한 정보 등을 담고 있는 Java 클래스와 WSDL등이 여

기에 포함된다. JEUS 6에서는 wsgen이라는 콘솔 스크립트를 제공하며, 이 스크립트는 JEUS_HOME/bin

디렉터리 하위에 존재한다.

예)

wsgen –cp <classpath> -d <destination_dir> fromjava.server.AddNumbersImpl

위와 같이 명령을 실행하면 지정한 경로에 이식 가능한 산출물이 생성됨을 확인 할 수 있다. 위 스크립트

를 실행할 때 –wsdl 옵션을 설정하면 WSDL까지 생성이 가능하나 JAX-WS 2.0에서는 웹 서비스 엔드 포

인트에 WSDL을 포함하지 않아도 되므로 여기서 –wsdl 옵션을 설정하지 않도록 주의한다. 다음은 이 산

출물들을 묶어서 서버에 배치하는 작업을 진행한다.

웹 서비스 패키징과 배치

현재 작성하고 있는 웹 서비스를 패키징 한다는 것은 서비스 구현 Bean과 서비스 구현 Bean이 참조하고

있는 Java 클래스와 부수적인 배치 서술자들을 WAR 형식으로 묶는 것을 의미한다. 여기서는 이미 앞에

서 작성했던 파일인 fromjava.server.AddNumbersImpl 클래스와 wsgen 스크립트를 통해 생성하였던

fromjava.server.jaxws.AddNumbers, fromjava.server.jaxws.AddNumbersResponse 클래스만을 포함한

다. 이 클래스들은 WEB-INF/classes 하위에 포함시키면 된다. 패키징 할 파일 이름을 AddNumbers.war로

130 JEUS 설치 및 시작하기

하여 WAR 패키징을 한 다음, JEUS 6에 배치하려면, JEUS_HOME/webhome/autodeploy에 WAR 모듈을

복사해 두기만 하면 된다. 그러면 실제 이 서비스를 호출 할 수 있는 HTTP 주소는 다음과 같다.

http://localhost:8088/AddNumbers/addnumbers

실제 이 주소로 웹 브라우저에서 호출하면 다음과 같이 성공적으로 웹 서비스가 배치되어 있음을 확인할

수 있다.

[그림 11.1] 성공적으로 배치된 AddNumbers

샘플 예제 손쉽게 실행하기

JEUS 6에서는 웹서비스 예제를 쉽게 실행해 볼수 있는 방법을 제공한다.

다음과 같이 JEUS_HOME\samples\getting_started\webservices\from_java\ 아래에서 다음과 같이 실행

하면 서비스 패키징부터 클라이언트 실행까지 쉽게 할 수 있다.

[예 11.2] 샘플 예제 실행

Buildfile: build.xml

-pre-init:

init:

build_server:

do-compile:

[echo] Compiling AddNumbers...

wsgen:

setOSConditions:

setToolUnix:

제11장 웹 서비스 사용하기 131

setToolWindows:

setTools:

do-wsgen:

[echo] wsgen -cp ./build/classes -keep -d ./build/classes fromjava.server.Add

NumbersImpl

do-package-war:

[copy] Copying 16 files to D:\TmaxSoft\jeus6\samples\getting_started\web

services\from_java\build\web\WEB-INF\classes

[jar] Building jar: D:\TmaxSoft\jeus6\samples\getting_started\webservic

es\from_java\dist\AddNumbers.war

build:

-pre-deploy:

deploy:

do-deploy:

[echo] Deploying ./dist/AddNumbers.war...

setOSConditions:

setToolUnix:

setToolWindows:

setTools:

do-deploy-cmd:

[echo] jeusadmin example -Ujeus -Pjeus deploy -absolute-path ./dist/AddNumber

s.war as AddNumbers

[exec] using the following application info :

[exec] <applicationType>

[exec] <deploy-when-booting>true</deploy-when-booting>

[exec] <name>AddNumbers</name>

[exec] <path>D:\TmaxSoft\jeus6\samples\getting_started\webservices\

from_java\.\dist\AddNumbers.war</path>

[exec] <deployment-type>COMPONENT</deployment-type>

[exec] <web-component>

[exec] </web-component>

[exec] <deployment-target>

[exec] <all-targets>

[exec] </all-targets>

[exec] </deployment-target>

132 JEUS 설치 및 시작하기

[exec] <class-ftp-unit>JAR</class-ftp-unit>

[exec] </applicationType>

[exec] The WebModule, AddNumbers, is deployed on example_container1

do-deploy-success:

getBrowser:

launch:

[echo]

[echo] Trying to launch the browser with the url

[echo] http://localhost:8088/AddNumbers/addnumbers

[echo]

[echo] If the above does not work, you may open a browser and cop

y and paste the above URL.

[echo]

build_client:

wsimport:

setOSConditions:

setToolUnix:

setToolWindows:

setTools:

do-wsimport:

[echo] wsimport -keep -p fromjava.client -d ./build/classes http://localhost

:8088/AddNumbers/addnumbers?wsdl

[exec] parsing WSDL...

[exec] generating code...

do-compile:

[echo] Compiling AddNumbers...

[javac] Compiling 1 source file to D:\TmaxSoft\jeus6\samples\getting_started\

webservices\from_java\build\classes

run:

[java] ##############################################

[java] ### JAX-WS Webservices examples - fromjava ###

[java] ##############################################

[java] Testing Java class webservices...

[java] Success!

제11장 웹 서비스 사용하기 133

all:

BUILD SUCCESSFUL

Total time: 32 seconds

11.1.2. From WSDL 방식

From Java 방식의 웹 서비스 방식이 이미 작성한 Java RPC 모델을 웹 서비스로 공개하는 것이 초점이라

면 From WSDL 방식의 웹 서비스는 서로 간에 통신할 SOAP 메시지를 먼저 정의하고 WSDL를 통해 그

정보를 공유한 다음, 그 정의된 메시지 타입에 맞도록 Java 클래스를 생성하는 것이 초점이라 할 수 있겠

다. 일반적인 From WSDL 방식의 웹 서비스 생성은 다음과 같은 과정으로 진행된다.

1. 서비스 엔드 포인트 인터페이스(Service Endpoint Interface)의 생성

2. 서비스 엔드 포인트 인터페이스의 구현

3. 웹 서비스 패키징과 배치

서비스 엔드 포인트 인터페이스의 생성

이 과정에서는 이미 공개되어 있는 WSDL을 기반으로 웹 서비스의 Java 인터페이스 파일과 Java 클래스

파일들을 생성한다. 이때 JEUS 6에서 제공하는 wsimport라는 콘솔 스크립트를 사용하고, 그 스크립트는

JEUS_HOME/bin이라는 위치에 존재한다.

다음과 같이 "JEUS_HOME\samples\getting_started\webservices\from_wsdl" 디렉터리에서 다음과 같이

실행한다.

예)

wsimport -keep -p fromwsdl.server -d ./build/classes ./web/WEB-INF/wsdl/AddNumber

s.wsdl

위와 같이 명령을 실행하면, 지정한 경로에 서비스 엔드 포인트 인터페이스와 서비스 정의 클래스를 포함

한 여러 산출물들이 생성된다.

이 중, 생성된 서비스 엔드 포인트 인터페이스는 다음과 같다. 이렇게 생성된 서비스 엔드 포인트 인터페

이스는 JAX-WS 2.0 런타임에 사용될 정보들을 Annotation 형태로 포함하고 있다.

[예 11.3] <<AddNumbersImpl.java>>

package fromwsdl.server;

@javax.jws.WebService(endpointInterface = "fromwsdl.server.AddNumbersPortType", ws

dlLocation = "WEB-INF/wsdl/AddNumbers.wsdl",

targetNamespace = "urn:AddNumbers", serviceName = "AddNumbersService", portName =

"AddNumbersPort")

public class AddNumbersImpl {

134 JEUS 설치 및 시작하기

public int addNumbers(int number1, int number2) {

return number1 + number2;

}

}

서비스 엔드 포인트 인터페이스의 구현

서비스 엔드 포인트 인터페이스가 생성이 되었다면, 이 엔드 포인트 인터페이스를 구현하는 실제 비즈니

스 로직을 가지고 있는 서비스 구현 Bean을 작성한다. 서비스 엔드 포인트 인터페이스를 구현한 서비스

구현 Bean을 작성할 경우에는 @WebService Annotation을 추가해야 하며, 이 Annotation은 서비스 엔드

포인트 인터페이스를 명시한 endpointInterface 멤버를 속성으로 가지고 있어야 한다.

웹 서비스 패키징과 배치

웹 서비스로 공개하기 위해 WAR 형태로 패키징 하는 작업은 이전의 From Java 방식의 웹 서비스의 패키

징 및 배치 작업과 유사하다.

wsimport 스크립트를 통해 생성한 서비스 엔드 포인트 인터페이스를 포함한 몇 가지의 산출물들과 서비

스 구현 Bean을 WEB-INF/classes에 위치시키고 WAR 형태로 패키징 한다. 이 때의 WAR 패키지의 이름

을 AddNumbers.war라고 하였을 경우, 이를 JEUS 6에 배치하게 되면 다음과 같은 주소로 접근할 수 있다

(From Java 방식으로 이미 배치 하였다면, context 이름이 동일 하므로 이를 제거한 후 다시 배치해야 한

다).

http://localhost:8088/AddNumbers/addnumbers

실제 이 주소로 웹 브라우저에서 호출하면 다음과 같이 성공적으로 웹 서비스가 배치되어 있음을 확인할

수 있다.

[그림 11.2] 성공적으로 배치된 From WSDL 방식의 웹 서비스

제11장 웹 서비스 사용하기 135

11.2. 웹 서비스 클라이언트 작성웹 서비스에 접근하기 위해서는 웹 서비스 클라이언트를 작성해야 하는데 웹 서비스 클라이언트 프로그

램의 구동 환경에 따라 Java SE 클라이언트와 Java EE 클라이언트로 구분할 수 있다.

본 절에서는 일반 Java 프로그램과 동일하게 구동되는 Java SE 클라이언트에 대해서만 다루도록 하겠다.

11.2.1. Java SE 클라이언트의 작성

JAX-WS 2.0에서는 기본적으로 웹 서비스 엔드 포인트에 대응하는 동적 프록시를 내부적으로 생성하여

마치 이를 서비스 엔드 포인트 인터페이스의 구현체인 것처럼 사용할 수 있다. 따라서 클라이언트 프로그

램 개발자는 생성된 프록시를 통해 서비스 엔드 포인트 인터페이스로 정의된 웹 서비스 메소드를 호출 할

수 있다.

이와 같은 작업을 진행하기 위해서는 서비스 엔드 포인트 인터페이스와 같은 몇 가지의 산출물들이 필요

한데, 이때 필요한 산출물들을 WSDL로부터 생성하기 위해서는 From WSDL 방식의 웹 서비스 생성에서

와 마찬가지로 wsimport라는 스크립트 툴을 사용하여야 한다.

다음은 wsimport 사용 예이다. JEUS_HOME\samples\getting_started\webservices\from_wsdl 디렉터리

에서 다음과 같이 실행한다.

예)

wsimport –p fromjava.client –d ./build/classes http://localhost:8088/AddNumbers/ad

dnumbers?wsdl

서비스 엔드 포인트 인터페이스와 서비스 클래스가 생성이 되었다면, 이를 사용하는 클라이언트 Java 프

로그램을 작성한다.

다음은 웹 서비스 클라이언트 프로그래밍의 한 예를 보여준다. 이 부분은 기존 JAX-RPC에서 제공하던 웹

서비스 클라이언트 프로그래밍 예와 흡사하다. 기본적으로 서비스 인스턴스를 생성한 다음, 그 서비스 인

스턴스로부터 서비스 엔드 포인트 인터페이스를 구현한 프록시 객체를 얻어오는 것이 주요 작업이다. 클

라이언트 런타임 내부적으로는 많이 달라졌지만, Java SE 클라이언트에서는 유사하다고 할 수 있다.

예제코드는 JEUS_HOME\samples\getting_started\webservices\from_wsdl\src\java\fromwsdl\client에서

찾아볼 수 있다.

[예 11.4] <<AddNumbersClient.java>>

package fromwsdl.client;

public class AddNumbersClient {

public static void main(String[] args) {

AddNumbersPortType port = new AddNumbersService().getAddNumbersPort();

int number1 = 10;

int number2 = 20;

136 JEUS 설치 및 시작하기

System.out.println("##############################################");

System.out.println("### JAX-WS Webservices examples - fromwsdl ###");

System.out.println("##############################################");

System.out.println("Testing Java class webservices from WSDL...");

int result = port.addNumbers(number1, number2);

if (result == 30) {

System.out.println("Success!");

}

}

}

위와 같이 클라이언트 프로그램을 작성하였다면, 실제 이를 컴파일 하여 실행하면 다음과 같은 결과가 나

타난다.

예)

[java] ##############################################

[java] ### JAX-WS Webservices examples - fromwsdl ###

[java] ##############################################

[java] Testing Java class webservices from WSDL...

[java] Success!

제11장 웹 서비스 사용하기 137

Appendix A. 플랫폼 별 JDK 설치

JDK는 JavaSE Development Kit의 약자로, 본 부록에서는 플랫폼 별 JDK의 설치 방법과 사용 방법에 대

해서 설명한다.

참고

본 부록은 인터넷에서 이용할 수 있는 JDK(JavaSE Developement Kit)의 Installation Guide의 요약

정리이다. 그러나 본 안내서에서 사용된 링크가 동작하지 않을 수 있다(2007년 기준).

A.1. Sun SolarisSolaris SPARC 및 x86 을 위한 위한 패치 파일은 http://java.sun.com/javase/downloads/index.jsp 페이지

의 “Solaris OS Patch” 에서 다운 받을 수 있다.

JDK를 사용하기 전에 Solaris 버전에 대한 필수 패치가 설치되어 있는지 확인한다.

JDK를 실행하기 위한 가장 쉬운 방법은 사용자의 쉘에 있는 PATH 환경변수를 업데이트하여 /usr/bin 앞

에 java 실행 가능 파일에 대한 경로를 넣는다. 예를 들어, JDK가 /usr/j2se에 설치되어 있을 경우,

(csh) setenv PATH ”/usr/j2se/bin:$PATH”

(sh or ksh) PATH=”/usr/j2se/bin:$PATH”

다른 대안으로, 실행 가능 파일은 전체 경로 이름 (예: /usr/j2se/bin/javac, /usr/j2se/bin/java) 등을 지정하

여 실행할 수 있다.

JDK를 실행할 때 다른 환경변수(예 JDK_HOME, JAVA_HOME 또는 CLASSPATH)는 필요하지 않다. 그

러나, 이들 변수가 기존 설정으로 인해 제대로 작동하지 않을 경우, 충돌 유무를 확인한다.

A.2. IBM AIXhttp://www-128.ibm.com/developerworks/java/jdk/aix 에서 JDK 를 다운로드한다.

JDK를 설치하기 위해서는 시스템 패치가 필요하다.

설치 도중 시스템 요구 사항을 요구할 경우, 다음의 ftp site에서 필요한 패키지를 다운로드해서 설치한다.

ftp://service.software.ibm.com

위 사이트에 연결 후, anonymous/e-mail 주소로 로그인이 가능하다. 목록을 확인하기 위해서는 반드시 ls

–1을 사용한다.

Appendix A. 플랫폼 별 JDK 설치 139

다음의 디렉터리 경로에서 필요한 파일을 얻을 수 있다:

● AIX update path

/aix/fixes/<해당 OS 버전>

● Other update file

/aix/fixes/v4/other

A.3. HP-UXhttps://h20392.www2.hp.com/portal/swdepot/displayProductInfo.do?productNumber=HPUXJAVAHOME

사이트에서 HP-UX JDK for the Java™ 2 Platform Standard Edition (J2SE)을 /tmp 디렉터리에 다운로드

한다. 이 소프트웨어를 설치하기 위해서는 시스템 패치가 필요하다. 이에 대한 정보는 모두 위 사이트에

언급되어 있다. 설치 방법 및 명령어에 대한 정보는 https://h20392.www2.hp.com/portal/swdepot/displayPro

ductInfo.do?productNumber=HPUXJAVAINFOLIB의 문서를 참조한다.

A.4. Linuxhttp://java.sun.com/javase/downloads/index.jsp 사이트에서 JDK 1.5 버전을 다운받을 수 있다.

140 JEUS 설치 및 시작하기

Appendix B. IPv6 설정

본 부록에서는 IPv6 설정에 대해 설명한다.

B.1. 소개IPv6 환경에서 JEUS의 설정은 다음과 같은 절차로 이루어 진다.

1. jeus, jeus-quickstart, startexampleserver, jeus.properties, startderby, stopderby 스크립트 변경

2. 내장 WebtoB 관련 환경변수 추가

3. 동작 확인

참고

설정하려는 서버의 hosts 파일에 loopback address는 ::1로 설정되어 있어야 한다.

hosts 파일은 운영체제에 따라 다음의 경로에 위치한다.

● Windows

C:\WINDOWS\system32\drivers\etc

● UNIX 계열

/etc/hosts

hosts 파일에 대한 예제는 다음과 같다.

[예 B.1] <<hosts>>

[jeusqa@ipv6linux /home/jeusqa]$ cat /etc/hosts

# Do not remove the following line, or various programs

# that require network functionality will fail.

#127.0.0.1 localhost

#::1 localhost6.localdomain6 localhost6

::1 localhost

Appendix B. IPv6 설정 141

B.2. IPv6 환경설정IPv6 사용을 위한 환경설정에 대해 설명한다. IPv6 환경은 파일에 따라 설정 방법이 다르다.

다음은 각 파일에 따른 설정 방법과 내장 WebtoB 관련 환경변수의 설정 방법이다.

● 파일명 : jeus, jeus-quickstart, startexampleserver

– 기존

-Djava.net.preferIPv4Stack=true \

– 변경

-Djava.net.preferIPv6Addresses=true \

-Djava.net.preferIPv4Stack=false \

● 파일명 : jeus.properties

– 기존

TOOL_OPTION="-Djeus.tm.not_use=true -Djava.net.preferIPv4Stack=true"

– 변경

TOOL_OPTION="-Djeus.tm.not_use=true -Djava.net.preferIPv6Addresses=true

-Djava.net.preferIPv4Stack=false"

● 파일명 : startderby, stopderby

– 기존

-Dderby.system.home="${JEUS_HOME}/derby/databases" \

– 변경

-Dderby.system.home="${JEUS_HOME}/derby/databases" \

-Djava.net.preferIPv6Addresses=true \

-Djava.net.preferIPv4Stack=false \

● 내장 WebtoB 관련 환경변수 추가

IPv6 환경에서 내장 WebtoB를 사용하려면 다음과 같이 환경변수를 추가 설정한다.

(환경변수 설정이 없으면 IPv4 사용)

export WEBTOB_PREFER_IPV6=Y

142 JEUS 설치 및 시작하기