JBPM4.3 web运行出错解决办法 ProcessEngine cannot be resolved to a type

最近开始学习jbpm,从4.3下手的,准备自己写一个例子的,但是运行tomcat就出错。报错说ProcessEngine编译不了,现在问题解决,记录一下。

下面是错误信息:


org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 19 in the jsp file: /index.jsp
ProcessEngine cannot be resolved to a type
16: <a href="<%=request.getContextPath()%>/login.jsp">登陆</a>
17: <br />
18: <%
19:  ProcessEngine processEngine = Configuration.getProcessEngine();
20:  //流程定义
21:  RepositoryService repositoryService = processEngine.getRepositoryService();
22:  List<ProcessDefinition> pdList = repositoryService.createProcessDefinitionQuery().list();

。。。。以下省略n个字

==================================================

解决办法:

在当前工程的属性里设置引jar包的方式

1、将Java Build Path里面引的JBPM的jar包删除,

2、在Java EE Module Dependencies中添加jbpm.jar和lib下的jar包,其中不要添加这三个jar包(juel-impl.jar,juel-engine.jar,juel-api.jar)

ok这样就可运行了呢。呵呵

 

我用的是eclipse3.5 galileo jee版的,原因应该是Java Build Path引的jar不能同步发布到tomcat下,所以在Java EE Module Dependencies引用相关的jar,web工程就可以运行了。

 

 

========问题补充=======================================================

以上的确是可以运行了web工程了。可是启动流程的时候又报错了。

错误信息如下:

java.lang.NoClassDefFoundError: de/odysseus/el/ExpressionFactoryImpl
 at org.jbpm.pvm.internal.script.JuelScriptEngineFactory.getScriptEngine(JuelScriptEngineFactory.java:185)
 at javax.script.ScriptEngineManager.getEngineByName(ScriptEngineManager.java:205)
 at org.jbpm.pvm.internal.script.ScriptManager.evaluate(ScriptManager.java:111)
 at org.jbpm.pvm.internal.script.ScriptManager.evaluateExpression(ScriptManager.java:90)

。。。。以下省略n字

 

原因是jbpm的el表达式和tomcat自带的el表达式有冲突,

因此做了一下尝试,

把上面所说的解决办法中的第2步少引的三个eljar包引入,然后把tomcat下面的el.jar包删除;

结果失败,还是报上面的错误;

 

尝试可行的另一解决办法:

3、把jbpm的lib包下的(juel-impl.jar,juel-engine.jar,juel-api.jar)这三个jar包copy到tomcat的lib目录下,然后把tomcat下面的el.jar包删除,

ok,问题解决,正常启动了流程。

 

 

 

 

 


 

你可能感兴趣的:(process)