第 10 章 部署描述符


进程和规则存储在基于 Apache Maven 的打包中,称为知识存档或 KJAR。规则、进程、资产和其他项目构件是 Maven 构建和管理的 JAR 文件的一部分。保存在名为 kmodule.xml 的 KJAR 的 META-INF 目录中的文件可用于定义 KIE 基础和会话。这个 kmodule.xml 文件默认为空。

每当 KIE Server 等运行时组件用于处理 KJAR 时,它会查找 kmodule.xml 来构建运行时表示。

部署描述符补充 kmodule.xml 文件,并对您的部署提供精细的控制。这些描述符的存在是可选的,您的部署将成功进行。您可以使用这些描述符设置纯技术属性,包括持久性、审计和运行时策略等 meta 值。

这些描述符允许您在多个级别上配置 KIE 服务器,包括服务器级别默认、每个 KJAR 的不同部署描述符和其他服务器配置。您可以使用描述符对默认的 KIE 服务器配置进行简单的自定义,可能针对每个 KJAR。

您可以在名为 kie-deployment-descriptor.xml 的文件中定义这些描述符,并将此文件放在 META-INF 文件夹中的 kmodule.xml 文件旁边。您可以通过将这个默认位置和文件名指定为系统参数来更改它:

-Dorg.kie.deployment.desc.location=file:/path/to/file/company-deployment-descriptor.xml
Copy to Clipboard Toggle word wrap

10.1. 部署描述符配置

部署描述符允许用户在多个级别上配置执行服务器:

  • 服务器级别 :主级别以及应用到服务器上部署的所有 KJAR 的主级别。
  • KJAR 级别 :这可让您在每个 KJAR 基础上配置描述符。
  • 部署时间级别 :部署 KJAR 期间应用的描述符。

由部署描述符指定的粒度配置项目优先于服务器级别,除非基于集合的配置项目被合并。层次结构的工作方式如下: 部署时间配置 > KJAR configuration > 服务器配置

注意

部署时间配置适用于通过 REST API 进行的部署。

例如,如果在服务器级别定义的持久性模式(您可以配置的项目之一)为 NONE,但与 JPA 在 KJAR 级别指定相同的模式,则实际模式将为 JPA。如果没有为该 KJAR 部署描述符(或没有部署描述符)的持久性模式指定持久性模式,它将回退到服务器级配置,本例中为 NONE (如果没有服务器级别部署描述符,则为 JPA )。

您可以配置什么?

可以通过部署描述符配置高级别技术配置详情。下表列出了它们以及每个类别的允许和默认值。

Expand
表 10.1. 部署描述符
配置XML 条目允许的可能值默认值

运行时数据的持久性单元名称

persistence-unit

任何有效的持久性软件包名称

org.jbpm.domain

Audit 数据的持久性单元名称

audit-persistence-unit

任何有效的持久性软件包名称

org.jbpm.domain

Persistence 模式

persistence-mode

JPA, NONE

JPA

Audit 模式

audit-mode

JPA、JMS 或 NONE

JPA

运行时策略

runtime-strategy

SINGLETON、PER_REQUEST 或 PER_PROCES_INSTANCE

SINGLETON

要注册的 Event Listeners 列表

event-listeners

有效的监听程序类名称作为 ObjectModel

没有默认值

要注册的 Task Event Listeners 列表

task-event-listeners

有效的监听程序类名称作为 ObjectModel

没有默认值

要注册的 Work Item 处理程序列表

work-item-handlers

有效的 Work Item Handler 类指定为 NamedObjectHandler

没有默认值

要注册的全局列表

Globals

给定为 NamedObjectModel的有效全局变量

没有默认值

要注册的 Marshalling 策略(用于可插拔变量持久性)

marshalling-strategies

有效的 ObjectModel

没有默认值

需要的角色被授予对 KJAR 的资源的访问权限

required-roles

字符串角色名称

没有默认值

KIE 会话的额外环境条目

environment-entries

Valid NamedObjectModel

没有默认值

KIE 会话的其他配置选项

配置

Valid NamedObjectModel

没有默认值

在远程服务中进行序列化的类

remoteable-class

有效的 CustomClass

没有默认值

警告

在生产环境中,不要将 Singleton 运行时策略与 EJB Timer 调度程序( KIE 服务器中的默认调度程序)一起使用。这个组合可能会导致在负载下出现 Hibernate 问题。如果没有特定原因使用其他策略,则建议按进程实例运行时策略。有关此限制的更多信息,请参阅 Singleton 策略和 EJBTimerScheduler 的 Hibernate 问题

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat