для java. lang.VerifyError в tomcat 7.0.23/jdk 1.6.x?

Когда я развернул встроенное веб-приложение maven 3.0.3 в tomcat 7.0.23 в Linux (java 1.6.x) и получил доступ к опубликованным моим учетным данным на странице входа, я получил следующая ошибка. pom.xml ссылается на сервлет 2.5, jsp 2.1 и JSTL 1.2.

Почему я получаю эту ошибку? что я могу сделать, чтобы избежать этого?

У меня есть другие файлы .war, развернутые на том же экземпляре tomcat, и я никогда не сталкивался с этой проблемой в этих приложениях.

1-й JSP (login.jsp), который я выполнил с помощью http GET, не выдал ошибку.При выполнении POST из 1-го JSP во 2-й Jsp (ChLogin.jsp) возникла проблема.

===========================

основная причина

java.lang.VerifyError: (class: org/apache/jsp/ChLogin_jsp, method: _jspService signature: (Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V) Inconsistent stack height 0 != 1
    java.lang.Class.getDeclaredConstructors0(Native Method)
    java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
    java.lang.Class.getConstructor0(Class.java:2699)
    java.lang.Class.newInstance0(Class.java:326)
    java.lang.Class.newInstance(Class.java:308)
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:172)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

ОБНОВЛЕНИЕ 1
WEB-INF\lib из веб-приложение НЕ содержит сервлетов, jsp или JSTL jar. Он содержит много зависимостей приложений и пружинных банок (мы используем Spring MVC).

ОБНОВЛЕНИЕ 2
Мы не выполняем предварительную компиляцию JSP. Однако это цель на другой день.

ОБНОВЛЕНИЕ 3
Обнаружено, что этой проблемы не было в tomcat 7.0.12, 7.0.14, 7.0.16, но началось с 7.0.19. Опубликовано в списке рассылки пользователей tomcat. получил ответ, что, возможно, виноват компилятор eclipse JDT. Подтверждено, что это действительно так, заменив компилятор в tomcat 7.0.23/27 компилятором JDT tomcat 7.0.16 и LO & BEHOLD, все в порядке. Я планирую написать команде компилятора Eclipse JDT (если она есть) и опубликовать сообщение об этой ошибке.

19
задан anjanb 31 May 2012 в 17:55
поделиться