アプリケーションの編集
デプロイ済みアプリケーションの編集は、管理コンソール、 wsadmin ツール、またはプログラミングによって行うことができます。この例を使用し、プログラミングによってデプロイ済みアプリケーションを編集します。
始める前に
WebSphere® Application Server 上でアプリケーションを編集するには、まずアプリケーションをインストールする必要があります。
このタスクについて
以下のタスクを実行して、デプロイ済みアプリケーションを編集します。
手順
- WebSphere Application Server に接続します。
- アプリケーション管理プロキシーを作成します。
- インストール済みのアプリケーションに関する情報を取得します。
- 必要に応じてタスク・データを操作します。
- インストール済みのアプリケーションに対する変更を保存します。
タスクの結果
例
以下の例には、前のステップに基づいた、アプリケーションの編集方法が示されています。
import java.lang.*;
import java.io.*;
import java.util.*;
import java.lang.reflect.*;
import com.ibm.websphere.management.application.*;
import com.ibm.websphere.management.application.client.*;
import com.ibm.websphere.management.*;
import javax.management.*;
public class aa {
public static void main (String [] args) {
try {
// Connect to WebSphere Application Server.
String host = "localhost";
String port = "8880";
String target = "WebSphere:cell=cellName,node=nodeName,server=server1";
Properties config = new Properties();
config.put (AdminClient.CONNECTOR_HOST, host);
config.put (AdminClient.CONNECTOR_PORT, port);
config.put (AdminClient.CONNECTOR_TYPE, AdminClient.CONNECTOR_TYPE_SOAP);
System.out.println ("Config: " + config);
AdminClient _soapClient = AdminClientFactory.createAdminClient(config);
// Create the application management proxy, AppManagement.
AppManagement proxy = AppManagementProxy. getJMXProxyForClient (_soapClient);
String appName = "MyApp";
// Get information for an application with name appName:
// Pass Locale information as the preference.
Hashtable prefs = new Hashtable();
prefs.put(AppConstants.APPDEPL_LOCALE, Locale.getDefault());
Vector allTasks = appMgmt.getApplicationInfo (appName, prefs, null);
// Manipulate task data as necessary.
if (task.getName().equals ("MapRolesToUsers") && !task. isTaskDisabled())
{
// find out column index for role and user column
// refer to the previous table to find the column names
int roleColumn = -1;
int userColumn = -1;
String[] colNames = task.getColumnNames();
for (int i=0; i < colNames.length; i++)
{
if (colNames[i].equals ("role"))
roleColumn = i;
else if (colNames[i].equals ("role.user"))
userColumn = i;
}
// iterate over task data starting at row 1 as row0 is
// column names
String[][]data = task.getTaskData();
for (int i=1; i < data.length; i++)
{
if (data[i][roleColumn].equals ("Role1"))
{
data[i][userColumn]="User1|User2";
break;
}
}
// now that the task data is changed, save it back
task.setTaskData (data);
}
// Save changes back into the installed application:
// Set information for an application with name appName.
// Pass Locale information as the preference.
prefs = new Hashtable();
prefs.put(AppConstants.APPDEPL_LOCALE, Locale.getDefault());
appMgmt.setApplicationInfo (appName, prefs, null, allTasks);
}
catch (Exception e) {
e.printStackTrace();
}
}
}