java.lang.VerifyError : (class: org/apache/jasper/compiler/JspUtil, 方法:<clinit> 签名:()V) 函数参数不兼容

标签 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 服务器。

提前致谢,如果我遗漏了什么,请告诉我。

最佳答案

这表明您的 web 应用程序的 /WEB-INF/lib 中有 servlet 容器特定的库,如 jsp-api.jar。这个不对。全部删除。你的 webapp 的 /WEB-INF/lib 应该只包含特定于 webapp 本身的库,而不是目标服务器。目标服务器已经在它自己的 /lib 文件夹中拥有这些库,它们应该保持不变,并且确保不会被复制/移动。

/WEB-INF/lib 中不正确地复制/放置 servlet 容器特定库是一个非常常见的初学者错误,因为他们正在盲目地寻找与 JSP/Servlet 相关的编译错误的解决方案/变通方法他们进入了他们的 IDE。

另见:

关于java.lang.VerifyError : (class: org/apache/jasper/compiler/JspUtil, 方法:<clinit> 签名:()V) 函数参数不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8821088/

相关文章:

java - Spring mvc :resource not finding *. ico 文件

java - 在 JSP scriptlet 中,如何访问从 Spring MVC ModelMap 传递的 java.util.Date 值?

spring-mvc - Spring MVC - 绑定(bind)枚举数组

java - 在 Spring Boot Controller 中使用对象代替多个参数和文件

java - 如何让 Spring Converter 抛出自定义异常而不是 ConversionFailedException?

java - Java中的递归字符串和删除字符

java - 表格位于框架底部

java - Spring MVC - 应用程序级别的缓存

java - 如何在Hibernate注释中指定char列的大小?

java - 为实现接口(interface)的类实现可序列化