jbpm中的一些错误

一、org.apache.jasper.JasperException: Unable to compile class for JSP解决方法
org.apache.jasper.JasperException: Unable to compile class for JSP: 


Stacktrace: 
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:85) 
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330) 
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:435) 
org.apache.jasper.compiler.Compiler.compile(Compiler.java:298) 
org.apache.jasper.compiler.Compiler.compile(Compiler.java:277) 
org.apache.jasper.compiler.Compiler.compile(Compiler.java:265) 
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564) 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:299) 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315) 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:803


解决办法:将jbpm的所有jar包放到项目的lib目录下而不是通过Add External JARs添加,具体原因不明白!

二、JBPM4项目和tomcat6.0的兼容问题
基于JBPM4的web项目jsp页面发布出错,错误如下:
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/OnDuty/wfmanage_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:275)
	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/OnDuty/wfmanage_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.OnDuty.wfmanage_jsp._jspInit(wfmanage_jsp.java:27)
	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:342)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)



原因是项目中WEB-INF\lib中的三个jar包(juel.jar, juel-engine.jar, juel-impl.jar)和tomcat6下lib中jar包(el-api.jar)冲突
解决方法:
方法一:换成tomcat5.5 一点问题也没有了
方法二:将juel.jar, juel-engine.jar, juel-impl.jar这三个包复制到tomcat6下lib中,并删除原来的el-api.jar,切记要把WEB-INF\lib中的juel.jar, juel-engine.jar, juel-impl.jar删除。不然还是要冲突。

你可能感兴趣的:(java,apache,jsp,servlet,jbpm)