当前位置: 首页 > 知识库问答 >
问题:

JBPM:自定义工作项处理程序的传递依赖关系问题

孟茂学
2023-03-14

我是jBPM的新手。我正在测试jBPM 7.32.0。最终版本
安装程序(ant install.demo)已经设置了环境。

我正在尝试开发和测试自定义工作项处理程序(如中所示https://www.youtube.com/watch?v=_XIZ0KRTahE)它使用oracle jdbc驱动程序
我在jbpm控制台中创建了:一个新的工作项定义(CustomTask),使用自定义任务的新业务流程,向项目中添加了工作项处理程序,在Eclipse中创建了处理程序实现,将工件上载到存储库,并向项目中添加了工件依赖关系。

没有传递依赖项的简单工件工作正常。问题是当我添加对应该在工作项处理程序中使用的jdbc驱动程序的依赖项时。

使用jbpm控制台,我将另一个带有jdbc驱动程序jar的工件(ojdbc8.jar)上载到存储库,并将依赖关系添加到jdbc驱动程序工件上的工作项处理程序工件。(通过编辑处理程序的pom.xml)。

>

  • 当我尝试在jbpm控制台中启动一个新的流程实例时,我得到

    “错误处理请求”(上下文路径:/kie server,Servlet路径:/services/rest,路径信息:/server/containers/cust-mod\u 1.0.0-SNAPSHOT/processes/Custom\u Module\u Project.TEST/instances,查询字符串:null)

    在server.log我可以看到:

    原因:java.lang.ClassNotFoundException:oracle.simplefan.FanManager

    这是另一个oracle jar文件中的类simplefan.jar.

    注意:当我在Eclipse中进行单元测试时,只有库ojdbc8。需要罐子!!

    然后,当我从pom中删除可传递依赖项时。在工作项工件中使用xml并重新部署项目(无需重新启动jbpm),令人惊讶的是,我可以启动一个新实例,而且工作正常!!!

    然后当我重新启动jBPM并尝试启动新实例时,会启动一个新实例,但是,进程自定义任务会引发一个异常,我可以在server.log中看到:

    Java语言lang.ClassNotFoundException:oracle。jdbc。OracleDriver

    当我重复上述步骤时,我可以再现仍然相同的行为。

    也许我错过了一些重要的事情。有人能告诉我正确的步骤/程序吗?如果需要更多信息,请告诉我。非常感谢。

  • 共有2个答案

    元鸿波
    2023-03-14

    如果您指的是Business Central:

    使用jbpm控制台,我将另一个带有jdbc驱动程序jar的工件(ojdbc8.jar)上载到存储库,并将依赖关系添加到jdbc驱动程序工件上的工作项处理程序工件。(通过编辑处理程序的pom.xml)。

    那么你在错误的地方添加了这个。JDBC驱动程序和datsource应该在JBoss下配置,vand Business Central通过指定数据源的JNDI名称来使用它。

    陶宏浚
    2023-03-14

    不确定这是多少(im)正确的“修复”,但将传递依赖项添加为项目的显式依赖项允许KIE服务器编译/执行容器。

     类似资料:
    • 我的代码似乎突破了一个我找不到的可传递依赖性问题。我正在尝试从JBoss EAP 7.3和RedHat的PAM 7.9产品(即JBPM 7.48)迁移到JBoss EAP 7.4和PAM 7.12(即JBPM 7.59),并且在我的一个servlet中遇到了这个问题,该servlet通过kie客户端API调用kie服务器。我以前读过关于JBoss的文章,也遇到过RESTEasy的问题,所以根据我的

    • 我一直在读这方面的文章,原因是Bazel在二进制文件的中只添加了它的直接依赖项。因为是传递依赖项,所以二进制文件找不到它。 为了解决这个问题,我可以想到以下几个黑客: > 添加难看的链接器标志,告诉Bazel添加到而不是。但是,这被认为是一个坏主意,因为不推荐使用,并且不允许通过重写。 使用而不是 使用而不是. 谢了!

    • null null 尝试强制升级的错误日志:“无法解析配置”:reading-condermination-server-quarkus-impl:TestCompileClasspath“的所有文件。 无法解析JUnit:JUnit:4.13。要求方:project:reading-concermination-server-quarkus-impl>找不到满足版本约束的“junit:junit

    • 我正在尝试构建一个简单的REST服务来学习OSGI。我正在使用Spark Servlet来处理请求。 我将 spark core 作为依赖项嵌入,在 maven 中构建了我的项目,并在部署时在 Karaf 中出现了布线包错误。 看起来我一个接一个地跟踪程序包,一个一个地解决每个错误,仅仅解决依赖关系就需要大约2个小时。显然我做错了什么。。 我应该如何执行此操作,以便使用 spark servlet

    • 如何编写自定义gradle插件来处理自定义存储库中自定义模块描述符中的依赖关系?gradle文档说了以下内容,但我还没有找到任何可以告诉我如何操作的内容。 即使您的项目使用的是自定义依赖关系管理系统或类似Eclipse的东西。类路径文件作为依赖关系管理的主数据,编写Gradle插件以在Gradle中使用此数据非常容易。 我一直在为ATG项目维护一个定制的常春藤解析器(源自此项目),但Gradle最

    • null 如果将插件放在buildconfig.groovy文件的plugins闭包中,不仅会自动安装插件,还会自动安装在其buildconfig.groovy文件中为插件定义的所有依赖项(或者打包后,安装其dependencies.groovy文件),我真的希望如此。 查看说明,我已经在repositories闭包中为我的项目设置了buildconfig.groovy文件: 然后将此添加到插件闭