我想知道jbpm、kie server 和kie workbench 有什么区别。我现在正在研究 jbpm 教程,所以我下载了完整的安装程序。但是,我读到: 1. jbpm 可以作为不同的 jars 分发。2. kie 服务器是作为战争分发的。
那么它们之间是什么关系呢?他们整合在一起了吗?它们是一样的吗?
这一切是如何与 Jboss EAP 集成/相关的?
我们在项目中使用了 Drools kieSessions。许多线程可以创建新的 kieSession。有时线程会在创建会话时挂起。因此问题是:
首先
我正在使用jbpm-console(6.0.0.Final)和自定义工作项处理程序.我在我的jbpm-console WAR中嵌入了一个自定义工作项处理程序JAR,如第7篇文章中所述:
https://community.jboss.org/thread/221748
到目前为止,这一切都很好,因为我可以在jbpm-console中成功启动流程定义,并启动我的自定义WorkItemHandler代码.
但是,在我的WorkItemHandler中,我想在ProcessInstance上设置一些变量.当我尝试这样的事情时:
public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {
KieServices ks = KieServices.Factory.get();
KieContainer kContainer = ks.getKieClasspathContainer();
// BLOWS UP HERE
//
KieSession session = kContainer.newKieSession();
WorkflowProcessInstance processInstance =
session.getProcessInstance(workItem.getProcessInstanceId());
// SET VARIABLE
processInstance.setVariable("foo", "bar");
}
Run Code Online (Sandbox Code Playgroud)
它"无法找到默认的KieSession":
11:21:03,177 ERROR Exception: java.lang.RuntimeException: Cannot find a default KieSession
at org.drools.compiler.kie.builder.impl.KieContainerImpl.findKieSessionModel(KieContainerImpl.java:302) [drools-compiler-6.0.0.Final.jar:6.0.0.Final]
at org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:295) [drools-compiler-6.0.0.Final.jar:6.0.0.Final]
at org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:278) [drools-compiler-6.0.0.Final.jar:6.0.0.Final]
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?我是否需要另外设置一些东西?我只是使用开箱即用(除了自定义工作项处理程序嵌入式jar)"demo"安装从这里:
http://sourceforge.net/projects/jbpm/files/jBPM%206/jbpm-6.0.0.Final
谢谢!
到目前为止,我无法找到最好的方法(意味着最小的开销)在Drools 6.0.0中向正在运行的KieSession添加规则并且仍然在KieSession中保存我的事实.在Drools 5中,当KBase被更改时KSession被更新,但是对于Drools 6来说似乎不一样,因为我的规则不是在KieBase中创建的.有没有办法在不替换KieFileSystem中的整个KieModules或Jars的情况下完成它.我认为应该有一个简单的方法.
你们有个主意吗?
问候
我试图在Wildfly 8.0.0.Final上使用KIE-CI(用于动态Maven打包规则)部署Drools.
我的简约测试项目的POM是:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.testing</groupId>
<artifactId>testprojekt</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<drools-version>6.0.1.Final</drools-version>
</properties>
<dependencies>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-core</artifactId>
<version>${drools-version}</version>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-compiler</artifactId>
<version>${drools-version}</version>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-ci</artifactId>
<version>${drools-version}</version>
</dependency>
</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)
部署失败,并出现以下错误:
11:58:35,430 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC000001: Failed to start service jboss.deployment.unit."testprojekt-1.0-SNAPSHOT.war".WeldStartService: org.jboss.msc.service.StartException in service jboss.deployment.unit."testprojekt-1.0-SNAPSHOT.war".WeldStartService: Failed to start service
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904) [jboss-msc-1.2.0.Final.jar:1.2.0.Final]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_51]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_51]
at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]
Caused by: org.jboss.weld.exceptions.DeploymentException: Exception List with 2 exceptions:
Exception …
Run Code Online (Sandbox Code Playgroud) 我在jboss-as-7.1.1.Final上成功部署了kie-drools-wb-distribution-wars-6.0.1.Final-jboss-as7.0.war,使用jdk1.7.0_10运行.
但是这个配置......
..无法使用此错误进行部署:
14:58:06,531 WARN [org.jboss.weld.deployer] (MSC service thread 1-5) JBAS016011: Warning while parsing vfs:/C:/java/too
ls/wildfly-8.1.0.Final-guvnor/bin/content/kie-drools-wb-distribution-wars-6.0.1.Final-jboss-as7.0.war/WEB-INF/beans.xml:
1 cvc-elt.1 : DÚclaration de l'ÚlÚment 'beans' introuvable.
14:58:07,500 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-6) MSC000001: Failed to start service jboss.module
.service."deployment.kie-drools-wb-distribution-wars-6.0.1.Final-jboss-as7.0.war".main: org.jboss.msc.service.StartExcep
tion in service jboss.module.service."deployment.kie-drools-wb-distribution-wars-6.0.1.Final-jboss-as7.0.war".main: JBAS
018759: Failed to load module: deployment.kie-drools-wb-distribution-wars-6.0.1.Final-jboss-as7.0.war:main
at org.jboss.as.server.moduleservice.ModuleLoadService.start(ModuleLoadService.java:91) [wildfly-server-8.1.0.Fi
nal.jar:8.1.0.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) [jboss-ms
c-1.2.2.Final.jar:1.2.2.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) [jboss-msc-1.2.2.F
inal.jar:1.2.2.Final]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0_10]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0_10]
at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_10]
Caused by: org.jboss.modules.ModuleNotFoundException: org.jboss.netty:main …
Run Code Online (Sandbox Code Playgroud) kie ×6
drools ×5
java ×3
jbpm ×2
wildfly ×2
business-process-management ×1
jboss-eap-6 ×1
kie-server ×1
maven ×1
wildfly-8 ×1