java.lang.VerifyError: (класс: org / apache / jasper / compiler / JspUtil, метод: <clinit>signature: () V) Несовместимый аргумент для функции - PullRequest
1 голос
/ 11 января 2012

Я создаю приложение, в котором появляется ошибка, показанная ниже.

Я использую 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 ]

4 голосов
/ 11 января 2012

Это означает, что в вашем веб-приложении /WEB-INF/lib есть специальные библиотеки контейнеров сервлетов, такие как jsp-api.jar. Это неправильно. Убери их всех. /WEB-INF/lib вашего веб-приложения должно содержать только библиотеки, относящиеся к самому веб-приложению, а не к целевому серверу. Целевой сервер имеет эти библиотеки уже в своей собственной папке /lib, и они должны оставаться нетронутыми и наверняка не будут скопированы / перемещены.

Неправильное копирование / размещение библиотек, специфичных для контейнера сервлета, в /WEB-INF/lib - довольно распространенная ошибка новичка, когда они вслепую ищут решение / обходной путь для ошибок компиляции, связанных с JSP / Servlet, которые они получили в своей IDE.

Смотри также:

1 голос
/ 11 января 2012

java.lang.VerifyError происходит, когда вы скомпилировали с использованием другого Jar-файла, отличного от используемого во время выполнения.

Возможно, Tomcat имеет неправильную версию JAR-файлов Apache (может быть более старой / более новой) на основе ошибки class: org/apache/jasper/compiler/JspUtil,Пожалуйста, убедитесь, что у вас есть правильные банки в classpath.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...