Red Hat Training

A Red Hat training course is available for Red Hat JBoss Operations Network

15.3. 新規リソースのデプロイ

この時点で、既存のアプリケーションを更新できます。次の手順では、CLI でリソースを作成し、JBoss サーバーにデプロイします。
最初に、アプリケーションのリソース種別を取得します。これは、複数のパラメーターにより異なります。
  1. アプリケーションのタイプ(WAR、EAR など)
  2. アプリケーションをデプロイする必要があるコンテナーのタイプ(Tomcat、JBoss AS 5 など)
注記
appType や appTypeName などのリソースタイプに関するすべての情報は、rhq-plugin.xml 記述子のリソースエージェントプラグインで定義されます。各デフォルトリソースタイプの属性、設定パラメーター、操作、およびメトリクスは、『リソース監視および操作リファレンス』 に一覧表示されます。
例:
var appType = ResourceTypeManager.getResourceTypeByNameAndPlugin( appTypeName, "JBossAS5" );
if( appType == null ) {
    println("  Could not find application type. Exit.");
    usage();
}
次に、アプリケーションのパッケージタイプを取得します。
var realPackageType = ContentManager.findPackageTypes( appTypeName, "JBossAS5" );
				
if( realPackageType == null ) {
    println("  Could not find JBoss ON's packageType. Exit.");
    usage();
}
JBoss ON の各リソースには、JBoss AS 5 リソースにデプロイされた WAR または EAR を含む設定パラメーターがあります。これは、説明的な情報と同様に、rhq-plugin.xml 記述子のリソースタイプのエージェントプラグインで定義されます。新しいリソースを作成できるようにするには、これらのパラメーターを入力する必要があります。
// create deployConfig 
var deployConfig = new Configuration();
deployConfig.put( new PropertySimple("deployExploded", "false"));
deployConfig.put( new PropertySimple("deployFarmed", "false"));
このメソッドを呼び出すと、パッケージタイプでサポートされるプロパティーのリストを呼び出すと、プロパティー名を取得できます。
var deployConfigDef = ConfigurationManager.getPackageTypeConfigurationDefinition(realPackageType.getId());
パッケージをバイト配列として提供します。
var inputStream = new java.io.FileInputStream(file);
var fileLength = file.length();
var fileBytes = java.lang.reflect.Array.newInstance(java.lang.Byte.TYPE, fileLength);
for (numRead=0, offset=0; ((numRead >= 0) && (offset < fileBytes.length)); offset += numRead ) {
    numRead = inputStream.read(fileBytes, offset, fileBytes.length - offset); 	
}
次に、リソースを作成します。この情報は、rhq-plugin.xml 記述子のリソースタイプのエージェントプラグインで定義されます。例:
ResourceFactoryManager.createPackageBackedResource(
    server.id,
    appType.id,
    packageName,
    null,  // pluginConfiguration
    packageName,
    packageVersion,
    null, // architectureId        
    deployConfig,
    fileBytes,
    null // timeout
);
指定の JBoss AS 5 サーバーインスタンスが稼働中であり、JBoss ON が実行していることを認識しているか、JBoss ON エージェントがサーバーにバイナリーコンテンツをアップロードできないことを示す例外が発生したことを確認します。