# 질문
JBoss 도입되는 버전에서 서버전역에서 사용가능한 공통 라이브러리 설정하는 방법을 알고 싶습니다.
# 답변
아래와 같이 라이브러리를 등록하시면 웹 애플리케이션 내의 클래스에서 사용하실 수 있습니다.
JBoss는 modules라는 디렉토리 하위에 클래스 로딩을 osci과 같은 형태로 진행하므로 필요한 클래스를 modules 하위에 등록합니다.
라이브러리가 제공되는 경우 하위의 3번 작업 부터 하시면 됩니다.
1. 코드 작성
package com.osci;
public class Test {
public Test() {
System.out.println("Test Created");
}
public void test() {
System.out.println("Test Called!");
}
}
2. Compile
javac -d . Test.java
jar -cvf test.jar com/
3. 모듈의 등록
3.1 모듈을 등록하기 위하여 JBoss 엔진 디렉토리 하위의 /opt/jboss-eap-6.1/modules/system/layers/base/로 이동합니다.
3.2 아래의 com/osci 디렉토리는 사용하는 라이브러리의 root 패키지명입니다.
mkdir -p com/osci/main
3.3 디렉토리를 이동합니다.
cd com/osci/main
3.4 위의 test.jar 파일을 main 디렉토리의 하위로 위치시킵니다.
그리고 module.xml 파일을 생성하여 아래와 같이 입력합니다.
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.osci">
<resources>
<resource-root path="test.jar"/>
<!-- Insert resources here -->
</resources>
<dependencies>
</dependencies>
</module>
resource-root path는 등록할 라이브러리의 실제 이름이며, /opt/jboss-eap-6.4/modules/system/layers/base/com/osci/main 하위에 위치해야 합니다. 여기서 com/osci는 패키지의 이름입니다.
(또는 /opt/jboss-eap-6.4/modules.ext/com/osci/main)
4. standalone-ha.xml 파일에 라이브러리 등록
eus11/configuration/standalone-ha.xml 파일의 profile중 domain:ee 부분을 찾아 아래와 같이 입력합니다. 굵은 부분이 추가된 부분입니다. com.osci의 이름음 위의 module.xml의 이름입니다.
<subsystem xmlns="urn:jboss:domain:ee:1.1">
<spec-descriptor-property-replacement>false</spec-descriptor-property-replacement>
<jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement>
<global-modules>
<module name="com.osci" slot="main" />
</global-modules>
</subsystem>
5. 테스트 진행
Test.jsp를 통해 테스트를 진행합니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
import="com.osci.*"
%>
<%
Test test = new Test();
test.test();
%>
주의할 점은 dependency가 있는 라이브러리의 경우 해당 라이브러리들을 각각 등록해 주셔야 합니다.