我正在尝试将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);
添加必要的导入后,我得到了一个干净的构建。我在我的。\ WEB-INF \ lib中放置了来自drools-distribution-5.5.0.Final.zip(来自http://www.jboss.org/drools/downloads)的JARS,我可以执行第一行jBPM代码(KnowledgeBuilder行)但是,当我跨过第二行(使用ResourceFactory.newClassPathResource())时,我得到以下内容:
12:29:02,243 ERROR [stderr](http-localhost-127.0.0.1-8080-1)java.lang.IllegalArgumentException:无法为类'org.drools.compiler.BPMN2ProcessProvider'实例化服务 12:29:02,243 ERROR [stderr](http-localhost-127.0.0.1-8080-1)位于org.drools.util.ServiceRegistryImpl.get(ServiceRegistryImpl.java:166) 12:29:02,243 ERROR [stderr](http-localhost-127.0.0.1-8080-1)位于org.drools.compiler.BPMN2ProcessFactory.loadProvider(BPMN2ProcessFactory.java:28) ...
12:29:02,259 ERROR [stderr](http-localhost-127.0.0.1-8080-1)由[Module“deployment.MyServer.war引起的:java.lang.ClassNotFoundException:org.jbpm.bpmn2.BPMN2ProcessProviderImpl :主要“来自服务模块加载器] 12:29:02,259 ERROR [stderr](http-localhost-127.0.0.1-8080-1)位于org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
我的问题是: 1)这个错误是因为缺少JAR吗?如果是这样,你能告诉我JAR是什么? 2)将样本BPMN文件(Evaluation.bpmn)放在我的类路径中是否足以让代码找到它?
谢谢。 人
答案 0 :(得分:0)
我遇到了类似的问题。此错误是因为缺少jar文件。我通过将jbpm-bpmn2-5.4.0.Final.jar添加到web-inf / lib文件夹来解决了这个错误。此jar文件存在于jbpm-installer / runtime文件夹中。