可以将许多不同类型的工件添加到业务级应用程序。 例如,您可以添加应用程序或模块、Java™ 档案(JAR 文件)、压缩文件中的数据以及其他业务级应用程序。 本示例描述如何使用脚本来创建空的企业级应用程序,然后将服务组件体系结构 (SCA) JAR 文件添加到该应用程序。
准备工作
在产品安装中,验证是否已配置目标服务器。 在配置服务器过程中,请确定应用程序文件是否可以在部署目标上运行。 必须将业务级应用程序的 SCA 组合体资产部署到已对
Feature Pack for SCA 启用的 V8.0 或更高版本服务器或集群(目标)或 V7.0 目标。
有关此任务
对于本示例,请在 Jython 或 Jacl 语言中使用 wsadmin 脚本,将业务级应用程序 HelloWorldAsync(具有 SCA JAR 文件 helloworld-ws-asynch.jar)创建为资产。
过程
- 启动 wsadmin 脚本工具。
- 创建一个名为的空业务级应用程序
HelloWorldAsync。
使用 createEmptyBLA 命令来创建业务级应用程序。
使用 Jython:
AdminTask.createEmptyBLA('-name HelloWorldAsync')
使用 Jacl:
$AdminTask createEmptyBLA {-name HelloWorldAsync}
在运行此命令后,命令窗口中会显示 blaID 输出:
WebSphere:blaname=HelloWorldAsync
可以运行 listBLAs 命令以查看单元中所有业务级应用程序的列表,并确认 HelloWorldAsync 业务级应用程序是否存在。
使用 Jython:
AdminTask.listBLAs()
要查看可读性更强的企业级应用程序列表,请尝试在此命令之前使用
print:
print AdminTask.listBLAs()
使用 Jacl:
$AdminTask listBLAs
- 导入 SCA JAR 资产。
使用 importAsset 命令将 JAR 文件导入到产品配置库。
使用 Jython:
AdminTask.importAsset('-source app_server_root/installableApps/helloworld-ws-asynch.jar')
使用 Jacl:
$AdminTask importAsset {-source app_server_root/installableApps/helloworld-ws-asynch.jar}
在运行此命令后,命令窗口中会显示 assetID 输出:
WebSphere:assetname=helloworld-ws-asynch.jar
可以运行 listAssets 命令以查看单元中所有资产的列表,并确认 helloworld-ws-asynch.jar 资产是否存在:
使用 Jython:
AdminTask.listAssets()
要查看可读性更强的资产列表,请尝试在该命令之前使用
print:
print AdminTask.listAssets()
使用 Jacl:
$AdminTask listAssets
- 将 SCA JAR 资产添加为业务级应用程序的组合单元。
使用 addCompUnit 命令将资产添加到业务级应用程序。
使用 Jython:
AdminTask.addCompUnit('[-blaID HelloWorldAsync -cuSourceID helloworld-ws-asynch.jar -MapTargets [[ .* SCA_server_name ]] ]')
使用 Jacl:
$AdminTask addCompUnit {-blaID HelloWorldAsync -cuSourceID helloworld-ws-asynch.jar -MapTargets {{ .* SCA_server_name }} }
SCA_server_name 是目标的名称;例如,server1。 该目标必须支持 SCA 组合体。 必须仅指定一个单独服务器或集群作为目标,而不是将 SCA 组合单元映射至多个目标。
在运行此命令后,命令窗口中会显示组合单元标识输出:
WebSphere:cuname=helloworldws
在部署组合单元期间,可以查看某些绑定的组合级别服务的统一资源标识 (URI),以及这些绑定的服务名称和绑定类型。 只有 URI 是可编辑的。 产品不会验证 URI。
可以运行
listCompUnits 命令以查看所指定业务级应用程序中所有组合单元的列表,并确认 helloworldws 组合单元是否存在于 HelloWorldAsync 中。
使用 Jython:
AdminTask.listCompUnits('-blaID HelloWorldAsync')
使用 Jacl:
$AdminTask listCompUnits {-blaID HelloWorldAsync}
- 保存配置更改。
使用 Jython:
AdminConfig.save()
使用 Jacl:
$AdminConfig save
- 启动 HelloWorldAsync 业务级应用程序。
使用 startBLA 命令来启动该应用程序。
使用 Jython:
AdminTask.startBLA('-blaID HelloWorldAsync')
使用 Jacl:
$AdminTask startBLA {-blaID HelloWorldAsync}
验证您是否看到以下指示该应用程序已成功启动的消息:
CWWMH0196I:业务级应用"WebSphere:blaname=HelloWorldAsync"已成功启动。
(可选)使用 getBLAStatus 命令来查询状态,以查看该应用程序是否处于运行状态。
使用 Jython:
AdminTask.getBLAStatus('-blaID HelloWorldAsync')
使用 Jacl:
$AdminTask getBLAStatus {-blaID HelloWorldAsync}
以下消息指示该应用程序是否已启动:
BLA: WebSphere:blaname=HelloWorldAsync Status of business-level application "WebSphere:blaname=HelloWorldAsync" is "ExecutionState.STARTED".
- 退出 wsadmin 命令 Shell。
下一步做什么?
可选择检查并可在应用程序中使用可下载 SCA 样本的 SCA/installableApps 目录中的其他 SCA 样本文件。
如果该业务级应用程序未启动,请确保该应用程序所映射至的部署目标正在运行,然后再次尝试启动该应用程序。 如果 SCA 组合体资产未启动,请确保每个资产都已映射至支持 SCA 组合体的部署目标。
如果资产组合单位使用企业JavaBeans (EJB)绑定并且无法启动,因为它有一个non-WebSphere target of
"null",删除资产组合单元并重新添加至业务级应用。 将资产添加到业务级应用程序时,请指定一个支持 SCA 组合体的目标。 在部署完毕后,将无法更改目标。
如果 SCA 应用程序使用了安全性,那么目标必须在全局安全域中。
在多节点环境中,在保存对目标所作的更改之后并在启动业务级应用程序之前,请对各个节点进行同步。