使用 wsadmin 脚本编制来设置业务级应用程序

您可以创建空的企业级应用程序,然后将资产、共享库或业务级应用程序作为组合单元添加到空的企业级应用程序。

准备工作

在可以创建业务级应用程序前,请确定要添加到您的应用程序中的资产或其他文件。

另外,请验证是否已配置目标应用程序服务器。 在配置该服务器的过程中,请确定您的应用程序文件是否可以在部署目标上运行。

有关此任务

您可以使用 wsadmin 工具在环境中创建业务级应用程序。 本主题演示如何使用 AdminTask 对象来导入并注册资产,创建空的企业级应用程序,并将资产作为组合单元添加到该业务级应用程序。 或者,您可以使用 AdminBLA 脚本库中的脚本来设置和管理业务级应用程序。

过程

  1. 启动 wsadmin 脚本编制工具。
  2. 将资产导入配置。

    资产所代表的应用程序二进制文件包含业务逻辑,该业务逻辑可以在目标运行时环境上运行并服务客户机请求。 资产可以包含压缩 (zip) 或 Java™ 归档 (JAR) 文件之类的文件的归档,也可以包含 Java Platform, Enterprise Edition (Java EE) 企业归档 (EAR) 文件之类的归档文件的归档。 资产的示例包括 EAR 文件、共享库 JAR 文件,以及代理服务器的定制顾问程序。

    使用 importAsset 命令,将资产导入应用程序服务器配置库。 请参阅“AdminTask 对象的 BLAManagement 命令组”的文档,以获取其他参数和步骤选项。

    对于本示例,这些命令会将三个资产添加到资产存储库。 其中两个资产为非 Java EE 资产,而另一个资产为企业资产。 以下命令会将 asset1.zip 资产导入资产存储库,并将返回的配置标识设为 asset1 变量:

    [Windows]
    asset1 = AdminTask.importAsset('-source c:/ears/asset1.zip')
    [Linux][AIX][z/OS][HP-UX][IBM i][Solaris]
    asset1 = AdminTask.importAsset('-source /ears/asset1.zip')

    以下命令将仅导入 asset2.zip 资产元数据,将资产名称设为 testAsset.zip,设置部署目录,指定将该资产用于测试,然后将返回的配置标识设为 testasset 变量:

    [Windows]
    testasset = AdminTask.importAsset('-source c:/ears/asset2.zip -storageType METADATA
     -AssetOptions [[.* testAsset.zip .* "asset for testing" 
          c:/installedAssets/testAsset.zip/BASE/testAsset.zip "" "" "" false]]')
    [Linux][AIX][z/OS][HP-UX][IBM i][Solaris]
    testasset = AdminTask.importAsset('-source /ears/asset2.zip -storageType METADATA
     -AssetOptions [[.* testAsset.zip .* "asset for testing" 
         /installedAssets/testAsset.zip/BASE/testAsset.zip "" "" "" false]]')

    以下命令会导入 defaultapp.ear 资产(在导入过程中存储所有应用程序二进制文件),并将返回的配置标识设为 J2EEAsset 变量:

    [Windows]
    J2EEAsset = AdminTask.importAsset('-source c:/ears/defaultapplication.ear 
     -storageType FULL -AssetOptions [[.* defaultapp.ear .* "desc" "" "" "" "" false]]')
    [Linux][AIX][z/OS][HP-UX][IBM i][Solaris]
    J2EEAsset = AdminTask.importAsset('-source /ears/defaultapplication.ear 
     -storageType FULL -AssetOptions [[.* defaultapp.ear .* "desc" "" "" "" "" false]]')
    会将相关资产注册为应用程序服务器配置库(称为资产注册表)中的已命名配置工件。 使用 listAssets 命令来显示已注册资产的列表,并验证设置是否正确,如以下示例所示:
    AdminTask.listAssets('-includeDescription true -includeDeplUnit true')
  3. 创建空的业务级应用程序。
    使用 createEmptyBLA 命令来创建新的企业级应用程序,并将返回的配置标识设为 myBLA 变量,如以下示例所示:
    myBLA = AdminTask.createEmptyBLA('-name myBLA
              -description "BLA that contains asset1, asset2, and J2EEAsset"')
    系统会创建该业务级应用程序。 使用 listBLAs 命令来显示单元中每个业务级应用程序的列表,如以下示例所示:
    AdminTask.listBLAs()
  4. 将资产作为组合单元添加到业务级应用程序。

    组合单元可以代表已部署的资产、其他业务级应用程序或外部工件(已在非应用程序服务器运行时上部署,但无后备资产)。 业务级应用程序包含零个或更多的组合单元。 无法将同一组合单元添加到多个业务级应用程序,但您可以使用一个资产来创建多个组合单元。

    使用 addCompUnit 命令将资产以组合单元形式添加到业务级应用程序。 以下命令会将 asset1.zip 资产添加为 myBLA 业务级应用程序中的组合单元,并将部署映射到 server1 服务器:
    AdminTask.addCompUnit('-blaID myBLA -cuSourceID asset1
     -CUOptions [[.* .* compositionUnit1 "composition unit that is backed by asset1" 0]]
     -MapTargets [[.* server1]]
     -ActivationPlanOptions [[.* specname=actplan0+specname=actplan1]]')
    以下命令会将 testAsset.zip 资产添加为 myBLA 业务级应用程序中的组合单元,并将部署映射到 server1testServer 服务器:
    AdminTask.addCompUnit('-blaID myBLA -cuSourceID asset2
     -CUOptions [[.* .* compositionUnit2 "composition unit that is backed by asset2" 0]]
     -MapTargets [[.* server1+testServer]]
     -ActivationPlanOptions [.* specname=actplan0+specname=actplan1]')
    以下命令会将 defaultapp.ear 资产添加为 myBLA 业务级应用程序中的组合单元,并将部署映射到 server1testServer 服务器:
    AdminTask.addCompUnit('[-blaID bla1 -cuSourceID ' + J2EEAsset + ' -defaultBindingOptions 
        defaultbinding.ejbjndi.prefix=ejb#defaultbinding.virtual.host=default_host#defaultbinding.force=yes 
    -AppDeploymentOptions [-appname defaultapp] -MapModulesToServers [["Default Web Application" .* 
     WebSphere:cell=cellName,node=nodeName,server=server1] ["Increment EJB module" .* 
     Websphere:cell=cellName,node=nodeName,server=testServer]]
     -CtxRootForWebMod [["Default Web Application" .* myctx/]]]')
  5. 保存配置更改。
    请使用以下命令示例来保存配置更改:
    AdminConfig.save()
  6. 使节点同步。
    使用 AdminNodeManagement 脚本库中的 syncActiveNodes 脚本来同步您环境中的每个活动节点,如以下示例演示:
    AdminNodeManagement.syncActiveNodes()
  7. 启动业务级应用程序。
    使用 startBLA 命令来启动部署目标上业务级应用程序的每个组合单元(已针对部署目标配置这些组合单元),如以下示例所示:
    AdminTask.startBLA('-blaID myBLA')

结果

系统会将资产所备份的三个组合单元添加到新的企业级应用程序。 会在 server1 服务器上分别部署并启动这三个资产。 还会在 testServer 服务器上部署和启动 testAsset.zipdefaultapp.ear 资产。