Badam następujące kwestie 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)
Występuje po uruchomieniu serwera jboss, na którym wdrożony jest serwlet. Jest skompilowany z jdk-1.5.0_11 i próbowałem go ponownie skompilować z jdk-1.5.0_15 bez powodzenia. Oznacza to, że kompilacja działa poprawnie, ale po wdrożeniu występuje błąd java.lang.VerifyError.
Kiedy zmieniłem nazwę metody i otrzymałem następujący błąd:
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)
Widać, że wyświetlana jest większa część sygnatury metody.
Rzeczywisty podpis metody to
private PgasePdfTable getMonthData(int month, int year, Collection dayTypes,
Collection calendarDays,
HashMap bcSpecialDays,
Collection activityPeriods,
Locale locale, MessageResources resources) throws Exception {
Próbowałem już na to patrzeć javap
i to daje metodzie podpis taki, 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 systemem Ubuntu pokazuje ten sam błąd podczas uruchamiania serwera.
Reszta aplikacji działa poprawnie, tylko jeden serwlet nie działa. Przydałyby się pomysły, gdzie szukać.