java.lang.VerifyError :( class:org / apache / jasper / compiler / JspUtil,method:<clinit> signature :()V)函数的不兼容参数</clinit>

时间:2012-01-11 14:39:09

标签: java spring-mvc

我正在创建一个应用程序,我收到如下所示的错误。

我正在使用Tomcat 6.0和Spring 3.0。

SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.VerifyError: (class: org/apache/jasper/compiler/JspUtil, method: <clinit> signature: ()V) Incompatible argument to function
at org.apache.jasper.JspCompilationContext.getServletClassName(JspCompilationContext.java:371)
at org.apache.jasper.JspCompilationContext.getClassFileName(JspCompilationContext.java:511)
at org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:445)
at org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:392)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:582)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:636)

如果需要任何其他详细信息,请与我们联系......

**注意:早期使用Java EE服务器的同一应用程序正在运行。现在我已将其更改为Tomcat而不是此Java EE服务器。

提前致谢,如果我遗失任何内容,请告诉我。

2 个答案:

答案 0 :(得分:4)

这表示您的webapp jsp-api.jar中有{servlet容器特定库,如/WEB-INF/lib。这个不对。全部删除它们。您的webapp /WEB-INF/lib应仅包含特定于webapp本身的库,而不应包含目标服务器。目标服务器已将这些库放在其自己的/lib文件夹中,并且它们应保持不变,并且确保不会被复制/移动。

/WEB-INF/lib中错误地复制/放置servlet容器特定库是一个非常常见的初学者的错误,而他们盲目地寻找解决方案/解决方案来解决他们在IDE中获得的与JSP / Servlet相关的编译错误。

另见:

答案 1 :(得分:1)

当你针对不同的Jar编译而不是在运行时使用时,会发生

java.lang.VerifyError

根据错误class: org/apache/jasper/compiler/JspUtil,Tomcat可能有错误版本的apache Jars(可能是旧版本/更新版本)。请确保您在类路径中有正确的Jars。