이 장에서는 사용자가 개발시에 필요한 X-UP 서버와 X-UP 빌더의 환경설정에 대하여 설명합니다.
X-UP 서버 설정
X-UP 서버를 설정하기 위해서 여러 가지 환경설정 파일을 제공합니다. X-UP 서버를 설치했다는 가정하에 환경설정 관련 파일에 대한 설명입니다.
WAS 설치 경로에서 [webapps > xup > WEB-INF > xup > conf] 경로로 가면 아래 그림과 같이 여러 환경 설정 파일이 존재합니다.
Name | Description |
---|---|
authInfo.xml | X-UP 서버에 관한 계정정보를 가진 파일입니다. |
log4j_config.xml | X-UP의 에러로그 설정에 관한 정보를 가진 파일입니다. |
xup_config.xml | X-UP이 구동하기 위한 설정정보를 가진 파일입니다. |
xup_env.property | X-UP의 환경 설정에 대한 정보를 가진 파일입니다. |
X-UP_Server_License.xml | X-UP 서버의 라이선스 파일입니다. |
xup_config.xml
xup_config.xml파일에는 X-UP Server에 대한 아래와 같은 환경설정 정보를 가지고 있습니다.
Name | Type | Description |
---|---|---|
isBundleDevMode | Boolean | X-UP에서 실행되는 Bundle을 개발할 경우 사용하는 옵션입니다. |
isManageMode | Boolean | X-UP 관리자 실행 여부입니다. |
isDebugMode | Boolean | 디버그에 대한 실행 여부입니다. 로그설정과 관계없이 true일 경우에만 로그를 남깁니다. (시스템 로그, 사용자 로그는 관계없음) |
exception.loglevel | Int | 예외처리에 대한 로그 레벨 설정입니다. |
enableModelSingleton | Boolean | 모델의 싱글톤 가능 여부입니다. |
logger.Api.enabled | Boolean | X-UP 서버의 내부 API단에서 생기는 로그를 남길지에 대한 여부입니다. |
logger.Parameter.enabled | Boolean | X-UP 서버의 파라미터를 핸들링할 때 발생하는 로그를 남길지에 대한 여부입니다. |
logger.DataSetBuilder.enabled | Boolean | Gathering 모델에서 원시데이터를 데이터셋으로 바꿔줄 때 발생하는 로그를 남길지에 대한 여부입니다. |
logger.ParameterSetBuilder.enabled | Boolean | Invoke에서 발생하는 로그를 남길지에 대한 여부입니다. |
enableModelSingleton - 싱글톤으로 설정 되어 있을 경우 자바 소스를 편집하여 사용하는 모델의 경우 클래스의 멤버 필드인 Variable 사용에 주의하여야 합니다. 스레드간 멤버 필드인 Variable이 공유되어 사용되어지기 때문입니다.
X-UP Server에서 사용하는 exception log level은 다음과 같습니다.
레벨 | 설명 | |
---|---|---|
1 | allException | 전체 예외에 대하여 전체 StackTrace와 메시지를 뿌립니다. |
2 | allException shortly | 전체 예외에 대하여 간단한 StackTrace와 메시지만 뿌립니다. |
3 | userException | 현재 예외에 대해 전체 StackTrace와 메시지를 뿌립니다. |
4 | userException | 현재 예외에 대해 간단한 StackTrace와 메시지를 뿌립니다. 4 레벨이 예외 로그가 가장 최소화되어 있습니다. |
로그에 관하여 xup_config.xml 파일의 isDebugMode의 설정이 가장 우선 시 됩니다. isDebugMode가 'False'로 설정되어 있다면 log4j.xml 파일의 설정과 상관없이 로그를 남기지 않습니다.
log4j.xml
X-UP은 자바 애플리케이션에서 빠르고 효과적으로 로깅할 수 있도록 도와주는 오픈 소스 프로젝트인 Apache log4j를 지원합니다.
log4j는 아래와 같이 구성되어 있습니다.
항목 | 설명 |
---|---|
Logger(Category) | 로깅 메시지를 Appender에 전달합니다. |
Appender | 전달된 로깅 메시지를 파일에다 기록할 것인지, 콘솔에 출력할 것인지 아니면 DB에 저장할 것인지 매개체 역활을 합니다. |
Layout | Appender가 어디에 출력할 것인지 결정했다면 어떤 형식으로 출력할 것인지 출력 layout을 결정합니다. |
log4j의 로깅 레벨은 아래와 같습니다.
레벨 | 설명 |
---|---|
FATAL | 가장 심각한 에러가 일어났을 때 사용합니다. |
ERROR | 일반 에러가 일어났을 때 사용합니다. |
WARN | 에러는 아니지만, 주의할 필요가 있을 때 사용합니다. |
INFO | 일반 정보를 나타낼 때 사용합니다. |
DEBUG | 일반 정보를 상세히 나타낼 때 사용합니다. |
auth_info.xml
auth_info 파일은 X-UP 에 대한 계정정보를 가진 파일입니다.
기본 배포 시 계정은 없으며, bin/encrypt.bat 파일을 이용해서 계정을 설정해야 합니다. 아래는 계정 설정하는 방법입니다.
해당 bin폴더로 계정을 설정하기 위해 이동합니다.
name과 password를 설정합니다.
계정이 추가된 뒤의 authInfo.xml 파일 내용입니다.
<?xml version="1.0" encoding="utf-8"?> <authInfo> <userList> <user> <name>xup</name> <password>n1M4xHQzLqhyIJjrzPIsFg==</password> </user> </userList> </authInfo>
새로운 계정을 추가한다면 encrypt.bat 새로운name 새로운password 로 계정을 추가할 수 있습니다.
auth_info에 계정 및 비밀번호를 변경하게 되면 X-UP 관리자 계정 등에도 변경된 계정으로 적용됩니다.
web.xml
X-UP 서버의 웹 애플리케이션 루트 폴더 밑의 xup/WEB-INF에 web.xml 파일이 위치합니다. web.xml 파일은 서블릿의 설정과 서블릿 매핑, 필터, 인코딩 설정을 담당합니다.
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <!-- xupservice, webservice, ui5 --> <servlet> <servlet-name>FrontControllerServlet</servlet-name> <servlet-class>com.nexacro.xup.service.FrontControllerServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <!-- deploy, undeploy --> <servlet> <servlet-name>DeploymentServiceServlet</servlet-name> <servlet-class>com.nexacro.xup.service.DeploymentServiceServlet</servlet-class> </servlet> <!-- serviceInfo, webServiceWSDL --> <servlet> <servlet-name>ServiceInfoServiceServlet</servlet-name> <servlet-class>com.nexacro.xup.service.ServiceInfoServiceServlet</servlet-class> </servlet> <!-- manage --> <servlet> <servlet-name>ManageServiceServlet</servlet-name> <servlet-class>com.nexacro.xup.service.ManageServiceServlet</servlet-class> </servlet> <!-- Servlet Mapping --> <servlet-mapping> <servlet-name>FrontControllerServlet</servlet-name> <url-pattern>/FrontControllerServlet.do</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>DeploymentServiceServlet</servlet-name> <url-pattern>/DeploymentServiceServlet.do</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>ServiceInfoServiceServlet</servlet-name> <url-pattern>/ServiceInfoServiceServlet.do</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>ManageServiceServlet</servlet-name> <url-pattern>/ManageServiceServlet.do</url-pattern> </servlet-mapping> </web-app>
JCO 라이브러리
아래 라이브러리들은 SAP 가이드에서 시스템이 설정된 경로에 해당 라이브러리를 위치시켜 사용하도록 권장하고 있습니다.
JCO 2.0 Version에 필요한 라이브러리 | JCO 3.0 Version에 필요한 라이브러리 |
---|---|
librfc32.dll sapjcorfc.dll sapjco.jar | sapjco3.dll sapjco3.jar |
X-UP에서는 X-UP 빌더를 통한 개발 시 좀더 편리하게 사용할 수 있도록 해당 라이브러리를 배포하여 사용할 수 있도록 하고 있습니다. X-UP에서는 JCO 2.0일 경우 librfc32를 로딩하여 jco 내부에서 sapjcorfc.dll을 로딩합니다. JCO 3.0일 경우는 jco 내부에서 sapjco3.dll을 로딩하기 때문에 X-UP에서는 별도로 로딩하지 않습니다.
JCO 3.0 기준이며, JCO 3.0일 경우 sapjco3.dll에 적용했을 때 설치 시 방안은 아래와 같습니다.
NetWeaver 사용
X-UP이 JCO 관련 라이브러리를 로딩 하지 않음
xup_env.property com.tobesoft.useJcoStandalone= false 사용.
SAP RFC DataSource 의 sapjco3.jar, sapjco3.dll 삭제
개발 시와 운영 시
X-UP이 sapjco3.jar 라이브러리를 로딩하는 경우
SAP RFC DataSource 에 위치한 라이브러리 로딩
System Path에 sapjco3.jar 라이브러리가 위치해 있을 경우
xup_env.property com.tobesoft.useStandAlone = false 사용
SAP RFC DataSource 의 sapjco3.jar, sapjco3.dll 삭제
Java ext 폴더를 이용하는 경우
xup_env.property com.tobesoft.useStandAlone = false 사용
SAP RFC DataSource 의 sapjco3.jar를 java ext 폴더로 이동
SAP RFC DataSource 의 sapjco3.dll를 java bin 폴더로 이동
다음과 같은 형태의 에러가 발생할 경우 OS Platform, JRE, SAP DLL bit version을 동일하게 설정 합니다.
caused by java.lang.NoClassDefFoundError :
message=Could not initialize class com.sap.conn.jco.rt.JCoRuntimeFactory
혹은 Error getting the version of the native layer:
java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path
X-UP 빌더 Preference 설정
X-UP Preference는 X-UP Builder의 전체 환경설정 정보를 설정할 수 있습니다. X-UP Preference는 [Window > Preferences.. > X-UP] 으로 실행할 수 있습니다.
현재 X-UP Preference는 아래와 같이 항목으로 구성되어 있습니다.
X-UP : General X-UP Builder Setting
DataSource : 자주 사용하는 데이터 소스 관리
Jetty : Jetty Web Server 환경설정
X-UP
공통적인 환경설정 정보를 정의할 수 있습니다.
'Is show X-UP Builder log message to console' 항목은 로그 출력을 console에 할 것인지 설정할 수 있습니다. 또한 'include package and class debug line message' 항목 설정을 통해 만약 로그 출력을 콘솔에서 한다면 'package'와 'class line message'를 포함할 것인지 정의할 수 있습니다.
'SAP RFC GROUP Search limit count' 항목은 그룹 조회 시 너무 많은 데이터가 나올 수 있으므로 정의된 숫자만큼만 출력되도록 제약을 줄 수 있습니다. 앞으로 다양한 환경설정 정보는 계속 추가될 예정입니다.
DataSource
자주 사용되는 데이터 소스들을 X-UP 빌더에 미리 저장하여 X-UP 모델 생성 시 참조 또는 재사용하기 위한 기능을 제공합니다.
등록된 데이터소스들은 프로젝트나 모델에 상관없이 어느 곳에서나 참조될 수 있습니다.
Name | Description | |
---|---|---|
1 | DataSource Table | 데이터소스 리스트 테이블은 등록된 데이터소스의 리스트를 보여줍니다. Name : 데이터소스의 이름 CheckBox : 체크박스에 체크가 된 데이터소스만 모델 개발 시 데이터소스 선택화면에서 나타나게 됩니다. Description : 데이터소스 작성 시 등록된 설명 Service : 등록된 데이터소스의 타입을 출력합니다. |
2 | Action Buttons | New : 새로운 데이터소스 생성 Edit : 기존 데이터소스를 편집 Remove : 선택한 데이터소스를 삭제 Copy as : 선택한 데이터소스를 복사 Import : 외부 데이터소스를 등록 Export : 등록된 모든 데이터소스를 xml 형태파일로 원하는 외부 디렉터리에 저장(백업). |
3 | Preview | 선택된 데이터소스의 상세 정보를 출력합니다. |
X-UP 빌더의 Preference에서 아래와 같은 방법으로 데이터소스 정의하고 사용할 수 있습니다.
[Window > Preferences..] 메뉴를 클릭하여 Preferences 위자드를 실행합니다.
X-UP DataSource 메뉴를 선택하면 데이터소스 설정화면이 나타납니다.
New 버튼을 클릭하여 새로운 데이터소스를 정의합니다.
위와 같이 정의된 데이터소스는 X-UP 프로젝트에서 복사하여 사용할 수 있습니다. X-UP 모델 생성 위자드의 'Define DataSource' 창에서 Copy From… 버튼을 클릭하여 Preference에서 정의한 데이터소스를 복사합니다.
Jetty Web Server
X-UP Builder에 포함된 Jetty Web Server 기능을 사용하기 위해 아래의 설정을 합니다.
Name | Description | |
---|---|---|
1 | HTTP Port | HTTP Port를 설정합니다. |
2 | Path | Path를 설정합니다. |
3 | Service URL Pattern | Service URL Pattern을 설정합니다. |
4 | Service Info URL Pattern | Service Info URL Pattern을 설정합니다. |
5 | Manage URL Pattern | Manage URL Pattern을 설정합니다. |
6 | Deployment URL Pattern | Deployment URL Pattern을 설정합니다. |
7 | Add Module | Web Module을 등록합니다. |
8 | Edit | Web Module에 등록된 항목을 편집합니다. |
9 | Remove | Web Module에 등록된 항목을 삭제합니다. |
compile 버전 변경
X-UP 빌더가 사용하는 JRE 버전은 1.6입니다. 따라서 사용자가 아래와 같이 X-UP 빌더에서 컴파일 버전을 변경할 수 있습니다.
X-UP 빌더의 Preference에서 아래와 같은 방법으로 컴파일 버전을 1.5로 변경할 수 있습니다.
[Window > Preferences] 메뉴를 클릭하여 Preferences 위자드를 실행합니다.
Java Compiler 메뉴를 클릭합니다.
JDK Compliance의 Compiler compliance level을 1.5를 선택하고 Apply 버튼을 클릭합니다.