Przyczyny pobierania błędu java.lang.VerifyError
Badam następujące rzeczyjava.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>
Występuje, gdy uruchamiany jest serwer jboss, na którym wdrożony jest serwlet. Jest skompilowany z jdk-1.5.0_11 i próbowałem go ponownie skompilować bez jdk-1.5.0_15. Oznacza to, że kompilacja działa dobrze, ale po wdrożeniu występuje błąd java.lang.VerifyError.
Kiedy zmieniłem nazwę metody i otrzymałem następujący błąd:
<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>
Możesz zobaczyć, że więcej podpisu metody jest pokazane.
Rzeczywisty podpis metody to
<code> private PgasePdfTable getMonthData(int month, int year, Collection dayTypes, Collection calendarDays, HashMap bcSpecialDays, Collection activityPeriods, Locale locale, MessageResources resources) throws Exception { </code>
Próbowałem już na to patrzećjavap
i to daje podpis metody, jaki powinien być.
Kiedy moi inni koledzy sprawdzają kod, kompilują go i wdrażają, mają ten sam problem. Gdy serwer kompilacji pobiera kod i wdraża go w środowiskach programistycznych lub testowych (HPUX), występuje ten sam błąd. Również automatyczna maszyna testująca z Ubuntu pokazuje ten sam błąd podczas uruchamiania serwera.
Reszta aplikacji działa poprawnie, tylko że jeden serwlet jest nieczynny. Wszelkie pomysły, gdzie szukać, byłyby pomocne.