OSGi 应用程序项目 (EBA) 将一组捆绑软件分组在一起。 应用程序可以由不同的 OSGi 捆绑软件类型组成。
开始之前
确保已 设置开发环境。
注: 要开发和构建
OSGi 应用程序项目,
如果要在 Eclipse Marketplace 上使用 CICS Explorer® ,那么必须安装 IBM CICS SDK for Enterprise Java (Liberty) 和 Liberty Developer Tools (LDT)。 如果要在不构建束的情况下导出束,那么可以将已构建的项目直接添加到 CICS 束的根。 否则,您可能会收到验证或导出失败错误。 请参阅 "对 Liberty JVM 服务器和 Java Web 应用程序进行故障诊断" 中的 CICS Explorer 无法导出捆绑软件。
关于此任务
如果要在 CICS Explorer (如以下指示信息所示) 或 IBM Developer for z/OS (IDz) 中使用 IBM CICS SDK for Java 或 IBM CICS SDK for Enterprise Java (Liberty) ,那么可以参阅 CICS Explorer 帮助。 这将提供有关如何完成以下每个步骤以开发和打包 OSGi 应用程序的完整详细信息。
如果您正在使用构建工具链 (例如 Apache Maven 或 Gradle) ,那么可以在 Maven Central 上使用 CICS提供的工件来定义 Java 依赖关系。
过程
- CICS Explorer 如果您正在使用 CICS Explorer,请使用 CICS TS 5。6 with Enterprise Java and Liberty 模板来设置 Java 开发的目标平台。 您可能会收到警告,指示目标的版本高于当前 Eclipse 安装版本,但您可以忽略此警告消息。
- 为应用程序创建 OSGi 捆绑软件项目 。
- CICS Explorer 如果您正在使用 CICS Explorer,那么目标平台会有效地使软件包可用,因此您必须在捆绑软件清单中包含相应的 Import 语句。 支持 Web 的 OSGi 捆绑软件项目 是等同于 动态 Web 项目的捆绑软件。 您可以使用支持 Web 的 OSGi 捆绑软件项目 在 OSGi 应用程序项目 (企业捆绑软件归档或 EBA 文件) 中部署应用程序。 您可以在 OSGi 应用程序项目中混用支持 Web 的 OSGi 捆绑软件项目 (WAB 文件) 和不支持 Web 的 OSGi 捆绑软件项目 。 支持 Web 的 OSGi 捆绑软件项目 通常将实现应用程序的前端,并与包含业务逻辑的非 Web OSGi 捆绑软件进行交互。
限制: 在 Java EE 8 和更高版本中不支持 EBA 文件。
- Gradle 对于 Gradle 用户,使用 BND Gradle Plugins创建支持 Gradle的 OSGi 项目,然后 声明对 CICS提供的工件的依赖关系。
- Maven 对于 Maven 用户,创建 Maven 项目。 在 pom.xml 文件中,指定
<packaging>bundle</packaging> 和以下依赖关系:<dependency>
<groupId>net.wasdev.maven.tools.targets</groupId>
<artifactId>liberty-target</artifactId>
<version><your_liberty_version></version>
<type>pom</type>
<scope>provided</scope>
</dependency>
您可以从 OSGi 捆绑软件 archetype (例如, osgi-web31-liberty 工件) 开始,并对其进行修改,而不是指定上面的依赖关系。 然后, 声明对 CICS提供的工件的依赖关系。
- 开发 Web 应用程序。 您可以使用 JCICS API 来访问 CICS 服务和 JDBC 以连接到 Db2®。 IBM CICS SDK for Java 包含使用 JCICS 和 Db2的 Web 组件和 OSGi 捆绑软件的示例。 创建使用 JCICS 将业务与演示逻辑分开的 OSGi 束。 您还可以在 OSGi 捆绑软件中使用语义版本控制来管理对应用程序的业务逻辑的更新。 对于使用 Db2 通过 JDBC DriverManager 接口的每个 WAB 或 OSGi 捆绑软件,请在捆绑软件清单中包含 com.ibm.db2.jcc 的 Import-Package 头。 省略此导入将导致错误消息java.sql.SQLException: No suitable driver found for
jdbc:default:connection. 使用 JDBC DataSource 接口时,不需要导入。
- 可选: 如果要认证 Web 应用程序的用户,请在 Web 项目中创建 web.xml 文件以包含安全性约束。 IBM CICS SDK for Java 包含此文件的模板,其中包含 CICS的正确信息。 请参阅 在 Liberty JVM 服务器中认证用户 以获取更多信息。
- 创建引用 OSGi 捆绑软件的 OSGi 应用程序项目 。
- 创建引用 OSGi 应用程序项目的 CICS 束项目。 您还可以为 CICS 资源添加定义和导入。 每个 CICS 束都包含一个标识和版本,因此您可以以精细方式管理更改。
- 可选: 如果要将来自 URI 的入站 Web 请求映射到在特定事务下运行,请将 URIMAP 和 TRANSACTION 资源添加到 CICS 束。 如果未定义这些资源,那么所有工作都在提供的事务(称为 CJSA)下运行。 这些资源作为 CICS中的束的一部分进行动态安装和管理。
结果
您设置了开发环境,创建了 OSGi Web 应用程序,并将其打包以进行部署。
下一步操作
准备好部署应用程序时,将 CICS 束项目导出到 zFS。 这样会构建引用的项目并将其包含在到 zFS 的传输中。 或者,您可以通过将应用程序导出为 EBA 文件并将其部署到正在运行的 Liberty JVM 服务器的 dropins 目录来遵循开发部署模型。 您应该知道,使用 dropins 无法配置安全性和其他服务质量。