无法从 JBoss servlet 访问 jBPM .BPMN 文件

Posted

技术标签:

【中文标题】无法从 JBoss servlet 访问 jBPM .BPMN 文件【英文标题】:Can't access a jBPM .BPMN file from a JBoss servlet 【发布时间】:2013-09-20 21:50:06 【问题描述】:

我正在尝试将 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) 在 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 from [Module "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) 放在我的类路径中是否足以让代码找到它?

谢谢。 铝

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于无法从 JBoss servlet 访问 jBPM .BPMN 文件的主要内容,如果未能解决你的问题,请参考以下文章

Jbpm6.1.0 控制台不工作 - 无法启动服务 jboss.deployment.unit.“jbpm-console.war”.WeldService:

Eclipse安装Drools插件(Drools and jBPM tools)时无法安装JBoss Runtime Drools Detector

为啥从 Tomcat 6.0 移植 JBoss-7.2.0 应用程序后无法运行?

纵观jBPM:从jBPM3到jBPM5以及Activiti5

jBPM编辑不同的工具

JBoss 系列一 O O:Maven jBPM 6 集成演示样例