环境 myeclipse8.5 集成了jbpm4.3
tomcat 6.0.29
已经发布了一个新流程。流程id为leave-1现在启动这个流程,start.jsp?id=leave-1
start.jsp内容如下<%@page import="java.util.*,org.jbpm.api.*,java.util.*"%>
<%@include file="/checkLogin.jsp" %>
<%
ProcessEngine processEngine = Configuration.getProcessEngine();
ExecutionService executionService = processEngine.getExecutionService();
Map<String,Object> map = new HashMap<String,Object>();
map.put("owner",session.getAttribute("username"));
executionService.startProcessInstanceById(request.getParameter("id"),map);
response.sendRedirect("index.jsp");
%>以上是内容,去掉executionService.startProcessInstanceById(request.getParameter("id"),map);剩下其他代码没问题。
关键问题就在这句代码上!视频教程上,人家没问题,代码也是直接拷贝过来的,为何我这儿就提示出错!错误信息如下org.apache.jasper.JasperException: An exception occurred processing JSP page /start.jsp at line 85:  ExecutionService executionService = processEngine.getExecutionService();
6:  Map<String,Object> map = new HashMap<String,Object>();
7:  map.put("owner",session.getAttribute("username"));
8:  executionService.startProcessInstanceById(request.getParameter("id"),map);
9:  response.sendRedirect("index.jsp");
10: %>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause javax.servlet.ServletException: java.lang.NoClassDefFoundError: de/odysseus/el/ExpressionFactoryImpl
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
org.apache.jsp.start_jsp._jspService(start_jsp.java:83)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.lang.NoClassDefFoundError: de/odysseus/el/ExpressionFactoryImpl
org.jbpm.pvm.internal.script.JuelScriptEngineFactory.getScriptEngine(JuelScriptEngineFactory.java:185)
javax.script.ScriptEngineManager.getEngineByName(ScriptEngineManager.java:205)
org.jbpm.pvm.internal.script.ScriptManager.evaluate(ScriptManager.java:111)
org.jbpm.pvm.internal.script.ScriptManager.evaluateExpression(ScriptManager.java:90)
org.jbpm.pvm.internal.model.ExecutionImpl.resolveAssignmentExpression(ExecutionImpl.java:772)
org.jbpm.pvm.internal.model.ExecutionImpl.initializeAssignments(ExecutionImpl.java:726)
org.jbpm.jpdl.internal.activity.TaskActivity.execute(TaskActivity.java:95)
org.jbpm.jpdl.internal.activity.TaskActivity.execute(TaskActivity.java:58)
org.jbpm.pvm.internal.model.op.ExecuteActivity.perform(ExecuteActivity.java:60)
org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperationSync(ExecutionImpl.java:656)
org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperation(ExecutionImpl.java:616)
org.jbpm.pvm.internal.model.ExecutionImpl.start(ExecutionImpl.java:217)
org.jbpm.pvm.internal.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:61)
org.jbpm.pvm.internal.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:37)
org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
org.jbpm.pvm.internal.tx.StandardTransactionInterceptor.execute(StandardTransactionInterceptor.java:54)
org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)
org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)
org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55)
org.jbpm.pvm.internal.svc.SkipInterceptor.execute(SkipInterceptor.java:43)
org.jbpm.pvm.internal.svc.ExecutionServiceImpl.startProcessInstanceById(ExecutionServiceImpl.java:58)
org.apache.jsp.start_jsp._jspService(start_jsp.java:75)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.

解决方案 »

  1.   

    tomcat 6.0.29 删除el-api.jar
    放入juel.jar,juel-impl.jar,juel-engine.jar 
      

  2.   

    我恰恰相反,保留tomcat 6.0.29 el-api.jar
    删除了 juel.jar,juel-impl.jar,juel-engine.jar  
    那我现在马上按你的方案测试一下,看看是否可行!!
      

  3.   

    还是不行啊。为了谨慎,我测试了多边,甚至重新安装tomcat6。还是不行,提示错误如下type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/el/ExpressionFactory
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:268)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    root cause java.lang.NoClassDefFoundError: javax/el/ExpressionFactory
    org.apache.jasper.JspCompilationContext.getServletClassName(JspCompilationContext.java:374)
    org.apache.jasper.JspCompilationContext.getClassFileName(JspCompilationContext.java:514)
    org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:445)
    org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:392)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.
      

  4.   

    上面是按照你说的,提示的错误。
    下面是, 把 juel.jar,juel-impl.jar,juel-engine.jar 保留,并且也保留tomcat下的el-api.jar提示错误如下type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.servlet.jsp.JspApplicationContext.getExpressionFactory()Ljavax/el/ExpressionFactory;" the class loader (instance of org/apache/jasper/servlet/JasperLoader) of the current class, org/apache/jsp/index_jsp, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, javax/servlet/jsp/JspApplicationContext, have different Class objects for the type javax/el/ExpressionFactory used in the signature
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:268)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    root cause java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.servlet.jsp.JspApplicationContext.getExpressionFactory()Ljavax/el/ExpressionFactory;" the class loader (instance of org/apache/jasper/servlet/JasperLoader) of the current class, org/apache/jsp/index_jsp, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, javax/servlet/jsp/JspApplicationContext, have different Class objects for the type javax/el/ExpressionFactory used in the signature
    org.apache.jsp.index_jsp._jspInit(index_jsp.java:31)
    org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52)
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:159)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.
      

  5.   

    tomcat 6.0.29 删除el-api.jar
    把juel.jar,juel-impl.jar,juel-engine.jar  放到tomcat下不行?
      

  6.   


    终于找到方法了,在网上找到的。保留tomcat 6.0.29目录下el-api.jar删除juel.jar,  保留juel-impl.jar,juel-engine.jar juel.jar与el-api.jar冲突。  但juel-impl.jar,juel-engine.jar 必须留着!谢谢各位,结贴。
      

  7.   


    一开始没看到把 juel.jar,juel-impl.jar,juel-engine.jar这些放入tomcat下。我仅仅把tomcat的el-api.jar删除,但在个人用户库jbpm4中保留juel.jar,juel-impl.jar,juel-engine.jar,所以还是提示出错。但现在估计把这三个代替el-api.jar放入tomcat6下,估计行!谢谢!