Ich untersuche Folgendes java.lang.VerifyError
java.lang.VerifyError: (class: be/post/ehr/wfm/application/serviceorganization/report/DisplayReportServlet, method: getMonthData signature: (IILjava/util/Collection;Ljava/util/Collection;Ljava/util/HashMap;Ljava/util/Collection;Ljava/util/Locale;Lorg/apache/struts/util/MessageRe˜̴Mt̴MÚw€mçw€mp:”MŒŒ
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2357)
at java.lang.Class.getConstructor0(Class.java:2671)
Es tritt auf, wenn der jboss-Server gestartet wird, auf dem das Servlet bereitgestellt wird. Es wurde mit jdk-1.5.0_11 kompiliert und ich habe versucht, es mit jdk-1.5.0_15 ohne Erfolg neu zu kompilieren. Das heißt, die Kompilierung läuft einwandfrei, aber bei der Bereitstellung tritt der java.lang.VerifyError auf.
Als ich den Methodennamen änderte und den folgenden Fehler bekam:
java.lang.VerifyError: (class: be/post/ehr/wfm/application/serviceorganization/report/DisplayReportServlet, method: getMD signature: (IILjava/util/Collection;Lj ava/util/Collection;Ljava/util/HashMap;Ljava/util/Collection;Ljava/util/Locale;Lorg/apache/struts/util/MessageResources ØÅN|ØÅNÚw€mçw€mX#ÖM|XÔM
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2357
at java.lang.Class.getConstructor0(Class.java:2671)
at java.lang.Class.newInstance0(Class.java:321)
at java.lang.Class.newInstance(Class.java:303)
Sie können sehen, dass mehr von der Methodensignatur angezeigt wird.
Die tatsächliche Methodensignatur lautet
private PgasePdfTable getMonthData(int month, int year, Collection dayTypes,
Collection calendarDays,
HashMap bcSpecialDays,
Collection activityPeriods,
Locale locale, MessageResources resources) throws Exception {
Ich habe bereits versucht, es mit zu betrachten, javap
und das gibt die Methodensignatur so, wie sie sein sollte.
Wenn meine anderen Kollegen den Code auschecken, kompilieren und bereitstellen, haben sie das gleiche Problem. Wenn der Build-Server den Code aufnimmt und in Entwicklungs- oder Testumgebungen (HPUX) bereitstellt, tritt der gleiche Fehler auf. Auch eine automatisierte Testmaschine, auf der Ubuntu ausgeführt wird, zeigt denselben Fehler beim Serverstart an.
Der Rest der Anwendung läuft in Ordnung, nur das eine Servlet ist außer Betrieb. Irgendwelche Ideen, wo man suchen sollte, wären hilfreich.