导入资产
要做的第一件事是导入所需的资产,包括上面描述的两个 EAR 文件和两个共享库。(为了简单,图中只显示一个资产的控制台面板;其他资产以相似的方式导入)。
在导航面板中选择 Applications => Application Types => Assets,即可显示导入的资产的列表。资产列表最初是空的,因为还没有导入资产。导入资产是非常简单的。在资产列表面板中单击 Import 按钮就会显示导入资产面板,后面详细讨论。(显示导入资产列表的资产列表面板示例见图 7)。
在资产列表面板中单击 Import 按钮就会显示图 3 这样的面板。在这里,可以从本地文件系统或管理控制台连接的主机的文件系统中选择资产文件。在这个示例中,从本地文件系统中选择。
图 3. 资产上传面板
在上传资产之后,要指定资产导入选项(图 4):
- Asset name。指定一个与导入的文件不同的名称。如果导入 x.jar 并把名称改为 y.jar,那么这个文件将作为 y.jar 保存在配置存储库中。在这个示例中,使用资产文件原来的名称。
- Asset description。资产配置包含对资产的描述。可以指定任意的描述。
- Asset binaries destination URL。在默认情况下,部署的资产展开为配置文件 root 目录下的 installedAssets 目录。如果希望把资产展开为其他目录,可以指定资产二进制目标目录。
- File permissions。当部署的资产展开为二进制目标目录时,根据这个配置值设置文件权限。默认值见图 4;可以根据自己的需求修改。通常情况下,资产的内容处理器会设置适合资产类型的默认值。
- Asset relationships。可以为资产配置对其他资产的依赖。通常情况下,由资产的内容处理器声明依赖。可以修改声明的默认依赖关系。在这个示例中,在资产级没有声明依赖,不需要添加。
- Validate asset。如果设置了 Validate asset 标志,资产的内容处理器会分析资产内容,确保它们是有效的。提供这个标志是因为检验花费的时间相当长,如果已经知道资产是有效的,用户可能选择不运行检验。有时候,即使知道一个资产不是有效的,仍然可能希望导入它。在大多数情况下,在部署资产之前,资产是否有效并不太重要。以后可以更新无效的资产,当它有效时部署它。在导入共享库资产或 Java EE 资产时不执行检验,所以这个示例不需要检验。
图 4. 资产导入选项面板
在下一个面板(图 5)上,可以检查前面做出的选择,然后返回去修改设置或者完成导入操作。
图 5. 资产导入汇总面板
在单击 Finish 之后,显示状态面板(图 6)。图中只显示进度条目,因为服务器跟踪已经启用了,但是如果需要,内容处理器可以显示进度消息。操作完成之后,可以把修改保存到配置存储库。
图 6. 资产导入状态面板
导入资产之后,它们会出现在资产列表面板中(图 7)。
图 7. 资产列表面板
创建复合单元
接下来,在刚才创建的业务级应用程序中添加资产。在业务级应用程序中添加资产会创建复合单元,复合单元会成为业务级应用程序的成员。
下面是在业务级应用程序中添加共享库所用的一系列面板。(这个示例中有两个共享库,但是下面只给出添加 AppScopedUtilities.jar 的过程。以相似方式创建另一个共享库复合单元)。
为了在业务级应用程序中添加资产,在导航面板中选择 Applications => Application Types => Business-level applications,进入业务级应用程序列表面板。单击要在其中添加资产的业务级应用程序的名称。在这个示例中,单击 OnlineStore,然后单击 Add 按钮(图 9)。
如图所示,这里有添加非共享库资产和共享库资产的选项。因为包含非库类的资产也可以作为共享库添加到业务级应用程序中,所以需要明确地选择。注意,如果选择了 Add Shared Library,资产就不配置为作为服务器组件运行;如果选择 Add Asset,情况正好相反。在这个示例中,资产是共享库。
图 9. 添加共享库资产面板
注意,图 9 显示业务级应用程序中已经添加的复合单元的列表。如果希望嵌套业务级应用程序,可以选择 Add 按钮,在这个业务级应用程序中添加另一个业务级应用程序。这么做会创建一个复合单元,它把父业务级应用程序链接到嵌套的业务级应用程序。在这个示例中,不需要嵌套业务级应用程序。
在图 10 中,显示供选择的资产列表。在这里,选择 AppScopedUtilites.jar 并单击 Continue 按钮。
图 10. 选择共享库资产
下面的一系列面板因添加的资产类型而异。因为这里要添加共享库资产,只需要很少的配置。配置选项如下:
- Name。系统会替您生成一个复合单元名,但是如果需要,可以修改它。
- Description。复合单元配置数据包含描述。
- Starting weight。启动权值控制这个复合单元相对于其他复合单元的启动时间。这里有两个上下文:业务级应用程序启动和服务器进程启动。在业务级应用程序启动时,它的复合单元按照启动权值的升序启动。在服务器进程启动时,所有复合单元按照启动权值启动,而不考虑它们所属的业务级应用程序。在停止业务级应用程序和停止服务器进程时,采用相反的次序。
- Start composition unit upon distribution。在默认情况下,在把复合单元保存到配置存储库时,并不启动它。设置这个标志会导致在把复合单元保存到配置存储库之后马上启动它。需要注意,共享库也会启动。在启动共享库时,会为它创建类装载器。
- Restart behavior on update。在默认情况下,在更新资产或修改复合单元配置数据时,如果需要的话,会重新启动资产的复合单元。可以通过选择 NONE 改变这种默认行为,这样就不会执行重新启动。
图 11. 共享库复合单元选项面板
在运行复合单元之前,它必须有一个目标。在图 12 所示的面板上,可以指定复合单元的目标。在这个示例中,使用一个单独的配置文件,所以只有一个目标可供选择。
图 12. 复合单元目标选择面板
在完成复合单元配置数据输入之后,会看到汇总面板(图 13)。在这里,可以返回去修改选项或者完成操作。
图 13. 添加复合单元汇总面板
在单击 Finish 之后,会看到图 14 所示的进度面板。在这个面板中只显示以时间戳开头的进度条目,因为已经启用了服务器跟踪。否则,不显示它们。如果需要,内容处理器可以显示进度消息。操作成功完成之后,可以把修改保存到配置存储库。
图 14. 添加复合单元状态面板
对于这个示例,需要在 OnlineStore 业务级应用程序中添加 AppScopedUtilities.jar 和 CommonUtilities.jar。这里没有给出执行这些任务的面板,因为它们与前面所示的面板相似。
接下来,需要在业务级应用程序中添加 Java EE 应用程序资产,首先是 UserProfile.ear。启动这个过程的方法与添加共享库资产基本相同,只是要选择 Add Asset 而不是 Add Shared Library。然后,从资产列表中选择 ShoppingCart.ear,见图 15。
图 15. 选择 Java EE 资产
后面的面板与添加共享库资产的面板很不一样。这是因为 Java EE 内容处理器必须从用户那里获得许多应用程序配置选项。如果您熟悉以前 WebSphere Application Server 版本中的 Java EE 应用程序安装面板,就会非常熟悉这些面板。如图 16 所示,选择显示所有安装选项和参数。
图 16. 快速路径 / 详细选择面板
其中许多面板处理与业务级应用程序无关的企业应用程序选项和参数。因此,这里只给出包含与业务级应用程序相关的选项的面板。
图 17 包含一个与业务级应用程序相关的选项。注意接近面板底部的 Business-level application name 框。您会注意到这个框是不可编辑的。这是因为已经选择了要添加应用程序的业务级应用程序。如果使用遗留安装面板安装应用程序(Applications => Application Types => WebSphere enterprise applications),会看到一组完全相同的面板。但是,通过遗留界面添加的应用程序并不添加到任何业务级应用程序的上下文中。因此,这个框是可编辑的。如果指定一个名称,就会把它添加到指定的业务级应用程序中(如果它存在的话)。如果指定的业务级应用程序不存在,就创建它。在默认情况下,系统会创建一个与应用程序同名的业务级应用程序,并把应用程序添加到这个业务级应用程序中。在通过遗留面板安装应用程序时,并不导入 Java EE 资产。配置存储库中应用程序二进制代码的惟一拷贝位于用于部署的应用程序的区域,在以前的 WebSphere Application Server 版本中有这个区域,7.0 版仍然使用这个区域。
图 17. 业务级应用程序名选项
图 18 中的面板是 WebSphere Application Server V7.0 中新增的。在这个面板中,可以指定对同一个业务级应用程序中共享库复合单元的依赖关系。在这个示例中,需要配置对 CommonUtilities.jar 和 AppScopedUtilities.jar 的复合单元的依赖关系。对于需要配置的每个依赖关系,选择应用程序(或具有依赖的特定模块)并单击 Reference shared libraries 按钮。
图 18. 映射共享库关系面板
注意图 18 显示的表中的 Match target 列。如果选中这个框,就会把相应模块或应用程序的目标添加到通过 Reference shared libraries 按钮选择的共享库中。一定要注意,Match target 并不是所选共享库的配置属性。这个选项用于在最初声明关系时添加共享库目标。如果以后修改一个模块的目标,那么不会相应地更新它依赖的共享库复合单元的目标。您需要自己更新共享库目标。
单击图 18 中的 Reference shared libraries 按钮时会显示图 19。选择要作为依赖添加的共享库复合单元。
图 19. 共享库选择面板
配置对复合单元 CommonUtilities_0001.jar(这是在业务级应用程序中添加 CommonUtilites.jar 时创建的复合单元)的依赖关系之后,映射共享库关系面板如图 20 所示。根据前面的应用程序描述,需要选择 User Shopping Cart 并添加对 AppScopedUtilities.jar 的复合单元之一的依赖。(这里没有给出这些面板,因为可以以相似的方式指定共享库依赖关系)。
图 20. 模块到共享库映射列表面板
为了设置启动权值,返回去编辑复合单元并选择 Startup behavior,这会显示图 21。对于 ShoppingCart.ear,启动权值设置为 2。
图 21. Java EE 启动次序设置面板
选择 Applications => Application Types => WebSphere enterprise applications 会显示企业应用程序列表,其中列出所有 Java EE 应用程序,包括通过这个面板部署的应用程序和在业务级应用程序中导入的 Java EE 资产。还可以通过这个路径设置应用程序的启动权值,会看到与编辑复合单元时相同的面板和链接。
为了在业务级应用程序中添加 UserProfile.ear,再次执行在业务级应用程序中添加 ShoppingCart.ear 时的步骤。有两处差异:
- 在配置共享库依赖关系时,必须选择 AppScopedUtilities.jar 的另一个复合单元。
- 需要把启动权值设置为 3,让它在 ShoppingCart.ear 之后启动。