Java EE 애플리케이션 배치 API 스펙(JSR-88)에서
DConfigBean 클래스를 사용하여 배치 중에
Java EE(Java Platform, Enterprise Edition)
애플리케이션 또는 독립형 모듈을 구성할 수 있습니다.
시작하기 전에
제거된 기능: Java EE Application Deployment API
스펙(JSR-88)을 사용한 애플리케이션 설치는
WebSphere® Application Server
버전 8.0에서 더 이상 사용되지 않습니다. 다른 옵션을 사용하여 애플리케이션을 서버에 배치하십시오. Java EE
Deployment API 사용과 가장 근접한 옵션은
JMX(Java Management Extensions) MBean 프로그래밍을 사용하는 것입니다. 배치 옵션에 대한 정보는
"엔터프라이즈 애플리케이션 또는 모듈 설치 방법"을 참조하십시오.
depfeat
이 주제에서는 JSR-88에 대한
WebSphere Application Server 지원을 사용하여
제품이 제공하는 애플리케이션 서버에서 Java EE 모듈을 전개(설치)한다고 가정합니다.
http://java.sun.com/j2ee/tools/deployment/에서 DConfigBean
클래스 사용과 JSR-88 스펙에 대해 읽도록 하십시오.
이 태스크 정보
JSR-88의 DConfigBean 클래스는 전개 중 J2EE 애플리케이션 및 모듈의
플랫폼 특정 구성에 대한 JavaBean 기반 지원을 제공합니다.
코드는 DConfigBean 인스턴스를 검사하여 플랫폼 특정 구성 속성을 가져올 수 있습니다.
WebSphere Application Server가 제공하는 DConfigBean 인스턴스에는
java.util.Map 오브젝트 배열이 있는 단일 속성이 있습니다.
맵 항목에는 코드가 값을 가져오고 설정하는 구성 속성이 포함됩니다.
프로시저
- JSR-88을 사용하여
애플리케이션 서버에 Java EE 모듈을 설치하는 코드를 작성하십시오.
- JSR-88을 전개하는 동안 제품이 생성하는 DConfigBeans에 액세스하는
코드를 작성하십시오. 그러면 사용자(또는 전개자)는
액세스하는 DConfigBeans 인스턴스를 사용자 정의할 수 있습니다.
다음의
의사 코드는 JJava EE 도구 제공자가 JSR-88을 배치하는 동안 제품에서 생성된
DConfigBean 인스턴스 속성을 가져오고 속성의 값을 설정하는 방법을 보여줍니다.
import javax.enterprise.deploy.model.*;
import javax.enterprise.deploy.spi.*;
{
DeploymentConfiguration dConfig = ___; // Get from DeploymentManager
DDBeanRoot ddRoot = ___; // Provided by J2EE tool
// Obtain root bean.
DConfigBeanRoot dcRoot = dConfig.getDConfigBeanRoot(dr);
// Configure DConfigBean.
configureDCBean (dcRoot);
}
// Get children from DConfigBeanRoot and configure each child.
method configureDCBean (DConfigBean dcBean)
{
// Get DConfigBean attributes for a given archive.
BeanInfo bInfo = Introspector.getBeanInfo(dcBean.getClass());
IndexedPropertyDescriptor ipDesc =
(IndexedPropertyDescriptor)bInfo.getPropertyDescriptors()[0];
// Get the 0th map.
int index = 0;
Map map = (Map)
ipDesc.getIndexedReadMethod().invoke
(dcBean, new Object[]{new Integer(index)});
while (map != null)
{
// Iterate over the map and set values for attributes.
// Set the map back into the DCBean.
ipDesc.getIndexedWriteMethod().invoke
(dcBean, new Object[]{new Integer(index), map});
// Get the next entry in the indexed property
map = (Map)
ipDesc.getIndexedReadMethod().invoke
(dcBean, new Object[]{new Integer(++index)});
}
}