Ursachen für das Abrufen eines java.lang.VerifyError

Ich untersuche das Folgendejava.lang.VerifyError

<code>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)
</code>

Es tritt auf, wenn der JBoss-Server, auf dem das Servlet implementiert ist, gestartet wird. Es ist 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 Fehler java.lang.VerifyError auf.

Als ich den Methodennamen änderte und den folgenden Fehler bekam:

<code>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)
</code>

Sie können sehen, dass mehr von der Methodensignatur angezeigt wird.

Die eigentliche Methodensignatur ist

<code>  private PgasePdfTable getMonthData(int month, int year, Collection dayTypes,
                          Collection calendarDays,
                          HashMap bcSpecialDays,
                          Collection activityPeriods,
                          Locale locale, MessageResources resources) throws   Exception {
</code>

Ich habe schon versucht, es mit anzusehenjavap und das gibt die Methodensignatur, 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 derselbe Fehler auf. Auch ein automatisierter Testcomputer, auf dem Ubuntu ausgeführt wird, zeigt den gleichen Fehler beim Serverstart.

Der Rest der Anwendung läuft in Ordnung, nur das eine Servlet ist außer Betrieb. Irgendwelche Ideen, wo zu suchen wäre hilfreich.

Antworten auf die Frage(23)

Ihre Antwort auf die Frage