라이브러리를 다중 Java™ EE 애플리케이션에서 공유할 수 있습니다. 모든 애플리케이션은
런타임에 동일 클래스를 사용하거나 각 애플리케이션이 동일 위치에서
로드한 클래스의 별도 고유 사본을 사용할 수 있습니다.
이 태스크 정보
다음 예제에서
Alexandria라는 라이브러리는 다음 두 파일로 구성됩니다.
- alexandria-scrolls.jar과
- commons-lang.jar
Scholar라는 애플리케이션 및
Student라는 애플리케이션이
Academy라는 서버에서 실행 중이며,
모두 이 라이브러리에 대한 액세스가 필요합니다.
프로시저
- ${WLP_USER_DIR} 디렉토리 아래 servers/Academy 디렉토리에 lib/Alexandria 디렉토리를
작성하십시오.
예를 들어 wlp/usr/servers/Academy/mylib/Alexandria를 작성하십시오.
- alexandria-scrolls.jar 및 commons-lang.jar 파일을 새 폴더에 복사하십시오.
- 애플리케이션에 대한 클래스 로딩을 구성하므로 Alexandria 라이브러리가 로드됩니다.
server.xml 파일 또는 포함 파일에서,
다음 코드를 추가하여 라이브러리를 정의하십시오.
<library id="Alexandria">
<fileset dir="${server.config.dir}/mylib/Alexandria" includes="*.jar" scanInterval="5s" />
</library>
참고: <library> 요소는 쉼표로 구분된
<fileset> 요소의 ID 목록으로 filesetRef 속성을 취할 수도 있습니다.
- 애플리케이션으로부터 라이브러리를 참조하므로 두 애플리케이션은
라이브러리의 단일 사본을 공유합니다.
server.xml 파일 또는 포함 파일에서 다음 코드를 추가하십시오.
<application id="scholar" name="Scholar" type="ear" location="scholar.ear">
<classloader commonLibraryRef="Alexandria" />
</application>
<application id="student" name="Student" type="ear" location="student.ear">
<classloader commonLibraryRef="Alexandria" />
</application>
참고: <commonLibraryRef> 요소는 쉼표로 구분된 라이브러리 ID의 목록을 취할 수 있습니다.
- 옵션: 동일 JAR 파일에서 고유한 클래스 세트를 로드하도록 다른 애플리케이션을 구성하십시오.
예를 들어,
Spy라는 다른 애플리케이션에 클래스의 고유 사본이 필요한 경우
디스크에 있는 동일한 실제 파일을 사용할 수 있습니다.
server.xml 파일 또는 포함 파일에서 다음 코드를 추가하십시오.
<application id="spy" name="Spy" type="war" location="spy.war">
<classloader privateLibraryRef="Alexandria" />
</application>
참고: <privateLibraryRef> 요소는 쉼표로 구분된 라이브러리 ID의 목록을 취할 수 있습니다.