전개된 애플리케이션의 추가 속성 조작
관리 콘솔, wsadmin 도구 또는 프로그래밍을 통해 전개된 애플리케이션의 속성을 조작할 수 있습니다. AppDeploymentTask 오브젝트를 통한 애플리케이션 설치 후 또는 설치 과정에서 노출되지 않은 속성을 조작하려면 이 예제를 사용하십시오.
시작하기 전에
이 태스크에서는 사용자가 MBean 프로그래밍 및 ConfigService 인터페이스의 기본사항을 알고 있다고 가정합니다. API(Application Programming Interface) 문서에서 MBean 프로그래밍 및 ConfigService 인터페이스에 대한 내용을 참조하십시오.
이 태스크 정보
AppDeploymentTask 오브젝트를 통해 노출되지 않은 속성을 조작하려면 배치된 애플리케이션에 대해 다음 태스크를 수행하십시오. 해당 속성은 전개된 각 애플리케이션의 구성 저장소에 작성되는 deployment.xml 파일에 저장됩니다.
프로시저
- 세션을 작성하십시오.
- WebSphere® Application Server에 연결하십시오.
- ApplicationDeployment 오브젝트를 찾으십시오.
- 속성을 조작하십시오.
- 변경사항을 저장하십시오.
- 세션을 정리하십시오.
결과
코드를 실행하면 배치된 애플리케이션의 deployment.xml 파일에서 속성이 업데이트됩니다.
예
다음 예제는 이전 단계를 기반으로 startingWeight, warClassLoaderPolicy 및 classloader 속성을 조작하는 방법을 보여 줍니다.
import java.util.Properties;
import javax.management.Attribute;
import javax.management.AttributeList;
import javax.management.ObjectName;
import com.ibm.websphere.management.AdminClient;
import com.ibm.websphere.management.AdminClientFactory;
import com.ibm.websphere.management.Session;
import com.ibm.websphere.management.configservice.ConfigService;
import com.ibm.websphere.management.configservice.ConfigServiceHelper;
import com.ibm.websphere.management.configservice.ConfigServiceProxy;
import com.ibm.websphere.management.exception.ConfigServiceException;
import com.ibm.websphere.management.exception.ConnectorException;
public class AppManagementSample1 {
public static void main(String[] args) {
String hostName = "localhost";
String port = "8880";
String appName = "ivtApp";
ConfigService configService = null;
// create a session.
Session session = new Session();
// establish connection to the server.
try {
Properties props = new Properties();
props.setProperty(AdminClient.CONNECTOR_TYPE,
AdminClient.CONNECTOR_TYPE_SOAP);
props.setProperty(AdminClient.CONNECTOR_HOST, hostName);
props.setProperty(AdminClient.CONNECTOR_PORT, port);
AdminClient adminClient =
AdminClientFactory.createAdminClient(props);
// create a config service proxy object.
configService = new ConfigServiceProxy(adminClient);
// Locate the application object.
ObjectName rootID = configService.resolve(session,
"Deployment="+appName)[0];
System.out.println ("rootID is: " + rootID);
// Locate the ApplicationDeployment object from the root.
ObjectName appDeplPattern = ConfigServiceHelper.createObjectName
(null, "ApplicationDeployment");
/*
ObjectName appDeplID = configService.queryConfigObjects(session,
rootID, appDeplPattern, null)[0];
*/
AttributeList list1 = configService.getAttributes(session,
rootID, new String[]{"deployedObject"}, false);
ObjectName appDeplID = (ObjectName)
ConfigServiceHelper.getAttributeValue(list1, "deployedObject");
System.out.println ("appDeplID: " + appDeplID);
// Locate the class loader.
// Change the starting weight through the startingWeight attribute. The starting weight
// affects the order in which applications start.
AttributeList attrList = new AttributeList();
Integer newWeight = new Integer (10);
attrList.add(new Attribute("startingWeight", newWeight));
// Change the WAR class loader policy through the warClassLoaderPolicy attribute by
// specifying SINGLE or MULTIPLE.
// SINGLE=one classloader for all WAR modules
attrList.add(new Attribute("warClassLoaderPolicy", "SINGLE"));
// Set the class loader mode to PARENT_FIRST or PARENT_LAST.
AttributeList clList = (AttributeList) configService.getAttribute
(session, appDeplID, "classloader");
ConfigServiceHelper.setAttributeValue (clList, "mode",
"PARENT_LAST");
attrList.add (new Attribute ("classloader", clList));
// Set the new values.
configService.setAttributes(session, appDeplID, attrList);
// Save your changes.
configService.save(session, false);
} catch (Exception ex) {
ex.printStackTrace();
} finally {
// Clean up the session.
try {
configService.discard(session);
}
catch (ConfigServiceException csEx)
{
csEx.printStackTrace();
}
catch (ConnectorException cnEx)
{
cnEx.printStackTrace();
}
}
}
}