如果您的应用程序使用随 JRE 提供的 IBM 或供应商类,那么您必须创建 OSGi 束片段,使这些类在 OSGi 框架中可用
关于此任务
从
CICS® TS 5.1开始,OSGi 框架对制订了更严格的规则来控制哪些类能从 JRE 中载入。
根据应用程序的需要,所有前缀为 java 的程序包都由 OSGi 框架载入。如果某个应用程序使用随 JRE 提供的 IBM 或供应商程序包(例如 com.ibm.misc),那么您必须创建中间件 OSGi 束,使这些类对于 OSGi 框架可用。如不这样做,事务将以 AJ05 代码异常结束,并且 java.lang.ClassNotFoundException 错误将写入 JVM 服务器错误日志和 CICS 系统日志。
您不需要为 JCICS Java 类完成这些步骤,因为 JCICS 类会自动在 OSGi 框架中变得可用。
过程
- 为应用程序所需要的每个 IBM 或供应商程序包创建一个 OSGi 束片段以导出程序包。 以下示例显示了 OSGi 束片段清单可包含的内容:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Extension
Bundle-SymbolicName: com.ibm.example.extension
Bundle-Version: 1.0.0
Bundle-Vendor: IBM
Fragment-Host: system.bundle; extension:=framework
Export-Package: com.ibm.misc
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Fragment-Host 定义了 OSGi 束片段扩展 OSGi 框架中的系统束。Export-Package 列出了导出的程序包;在本示例中,导出了以 com.ibm.misc 开头的程序包。如果您使用 Eclipse,请忽略标记的错误。
- 更改应用程序,为适当的 OSGi 束清单中的已导出程序包添加导入。 每个需要 IBM 或供应商程序包中的类的 OSGi 束必须声明清单中的程序包。
- 创建 OSGi 束片段的 CICS 束项目。您可以将一个或多个 OSGi 束片段包含在项目中,具体取决于您是否要集中管理片段的生命周期。 作为最佳实践,保持中间件束与应用程序的分离,从而使管理员能独立管理 CICS 中的生命周期。
结果
您已创建包含一个或多个 OSGi 束片段的 CICS 束项目,并且这些束片段从 JRE 导出程序包。部署后,该中间件束确保您的应用程序能在
CICS TS 5.1 JVM 服务器中运行。
下一步做什么
部署应用程序和中间件束。您必须确保目标 JVM 服务器的 JVM 概要文件在
OSGI_BUNDLES 选项上指定了中间件束。