0

我正在尝试将 jBPM 5.4 支持添加到 servlet。我已经移植了一个 Tomcat servlet 以与 JBoss 7.1 一起运行,现在正尝试向它添加 jBPM 支持。我已经运行了 jbpm-5.4.0.Final-installer-full.zip 来使用 Kepler 安装 JBoss/jBPM(我必须修补安装程序才能安装 Kepler)。然后,我从安装程序的“评估”示例中复制了以下两行代码,并将它们放在我的 servlet 中:

KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource("Evaluation.bpmn"), ResourceType.BPMN2);

添加必要的导入后,我得到了一个干净的构建。我将来自 drools-distribution-5.5.0.Final.zip(来自http://www.jboss.org/drools/downloads)的 JARS 放在我的 .\WEB-INF\lib 中,我能够执行第一个jBPM 代码行(KnowledgeBuilder 行。但是,当我跨过第二行(使用 ResourceFactory.newClassPathResource())时,我得到以下信息:

12:29:02,243 错误 [stderr] (http-localhost-127.0.0.1-8080-1) java.lang.IllegalArgumentException: 无法为类“org.drools.compiler.BPMN2ProcessProvider”实例化服务 12:29:02,243 错误 [ stderr] (http-localhost-127.0.0.1-8080-1) at org.drools.util.ServiceRegistryImpl.get(ServiceRegistryImpl.java:166) 12:29:02,243 错误 [stderr] (http-localhost-127.0.0.1- 8080-1) 在 org.drools.compiler.BPMN2ProcessFactory.loadProvider(BPMN2ProcessFactory.java:28) ...

12:29:02,259 错误 [stderr] (http-localhost-127.0.0.1-8080-1) 原因:java.lang.ClassNotFoundException: org.jbpm.bpmn2.BPMN2ProcessProviderImpl 来自 [模块“deployment.MyServer.war:main”来自服务模块加载器] 12:29:02,259 错误 [stderr] (http-localhost-127.0.0.1-8080-1) at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)

我的问题是:1)这个错误是因为缺少 JAR 吗?如果是这样,你能告诉我缺少什么 JAR 吗?2) 将示例 BPMN 文件 (Evaluation.bpmn) 放在我的类路径中是否足以让代码找到它?

谢谢你。铝

4

1 回答 1

0

我遇到了类似的问题。这个错误是因为缺少 jar 文件。我通过将 jbpm-bpmn2-5.4.0.Final.jar 添加到 web-inf/lib 文件夹解决了这个错误。此 jar 文件位于 jbpm-installer/runtime 文件夹中。

于 2013-10-05T16:09:01.783 回答