jbpm 与 OSGi、Maven 等的集成

如何解决jbpm 与 OSGi、Maven 等的集成

我正在开发基于 Osgi (apache Felix) 和 maven 的微服务。 我正在学习jbpm。 我创建了一个决策表,我需要从我的 Osgi Java 项目中调用它。 下面是我在 bpmn 的 javadoc 中使用的代码,但似乎它不起作用,因为虽然我从 maven 导入了一堆依赖项,但仍然有很多其他依赖项,例如

KNowledgeBaseConfiguration
ResourceFactoryService
ResourceFactoryService
KNowledgeBase

保持悬而未决。

<drools.version>7.0.0.Final</drools.version>
  
  <dependency>
    <groupId>org.jbpm</groupId>
    <artifactId>jbpm-bpmn2</artifactId>
    <version>${drools.version}</version>
  </dependency><!-- https://mvnrepository.com/artifact/org.drools/drools-core -->
  <dependency>
    <groupId>org.drools</groupId>
    <artifactId>drools-core</artifactId>
    <version>${drools.version}</version>
  </dependency><!-- https://mvnrepository.com/artifact/org.drools/drools-osgi-integration --><!-- https://mvnrepository.com/artifact/org.drools/drools-decisiontables -->
  <dependency>
    <groupId>org.drools</groupId>
    <artifactId>drools-decisiontables</artifactId>
    <version>${drools.version}</version>
  </dependency><!-- https://mvnrepository.com/artifact/org.drools/drools-api -->
  <dependency>
    <groupId>org.drools</groupId>
    <artifactId>drools-compiler</artifactId>
    <version>${drools.version}</version>
  </dependency>
  <dependency>
    <groupId>org.kie</groupId>
    <artifactId>kie-api</artifactId>
    <version>${drools.version}</version>
  </dependency>

这是我在jbpm的文档中与Osgi集成部分找到的逻辑

    ServiceReference serviceRef = bundleContext.getServiceReference( ServiceRegistry.class.getName() );
    ServiceRegistry registry = (ServiceRegistry) bundleContext.getService( serviceRef );

    KNowledgeBuilderFactoryService kNowledgeBuilderFactoryService = registry.get( KNowledgeBuilderFactoryService.class );
    KNowledgeBaseFactoryService kNowledgeBaseFactoryService = registry.get( KNowledgeBaseFactoryService.class );
    ResourceFactoryService resourceFactoryService = registry.get( ResourceFactoryService.class );

    KNowledgeBaseConfiguration kbaseConf = kNowledgeBaseFactoryService.newKNowledgeBaseConfiguration( null,getClass().getClassLoader() );

    KNowledgeBuilderConfiguration kbConf = kNowledgeBuilderFactoryService.newKNowledgeBuilderConfiguration( null,getClass().getClassLoader() );
    KNowledgeBuilder kbuilder = kNowledgeBuilderFactoryService.newKNowledgeBuilder( kbConf );
    kbuilder.add( resourceFactoryService.newClassPathResource( "MyProcess.bpmn",Dummy.class ),ResourceType.BPMN2 );

    kbaseConf = kNowledgeBaseFactoryService.newKNowledgeBaseConfiguration( null,getClass().getClassLoader() );
    KNowledgeBase kbase = kNowledgeBaseFactoryService.newKNowledgeBase( kbaseConf );
    kbase.addKNowledgePackages( kbuilder.getKNowledgePackages() );

    StatefulKNowledgeSession ksession = kbase.newStatefulKNowledgeSession();
    return Optional.empty();

我的问题是:

  1. 如何集成 jbpm 和 Osgi java 来调用和执行 bpmn 或决策表?
  2. 为什么这些依赖关系没有解决?我也尝试了最新的 7.46.0.FINAL 版本的 drools?

解决方法

对于问题 1,您需要来自组 org.kie.server 的 kie-server-client。

您可能使用的其他依赖项是 apis(问题 2)中的定义:来自 org.jbpm 组的 jbpm-kie-services 和来自 org.kie 组的 kie-api、kie-internal。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?