Я розслідую наступне 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)
Це відбувається при запуску сервера jboss, на якому розміщений сервлет. Він компілюється з jdk-1.5.0_11, і я намагався перекомпілювати його з jdk-1.5.0_15 без успіхів. Це компіляція працює нормально, але при розгортанні виникає java.lang.VerifyError.
Коли я змінив ім'я методу та отримав таку помилку:
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)
Ви можете бачити, що більше підписів методу показано.
Фактичний підпис методу є
private PgasePdfTable getMonthData(int month, int year, Collection dayTypes,
Collection calendarDays,
HashMap bcSpecialDays,
Collection activityPeriods,
Locale locale, MessageResources resources) throws Exception {
Я вже спробував подивитися на це, javap
і це дає метод підпису як слід.
Коли інші мої колеги перевіряють код, складають його та розгортають, у них виникає та сама проблема. Коли сервер збирання збирає код і розгортає його в середовищах розробки або тестування (HPUX), виникає та сама помилка. Також автоматизована машина тестування під управлінням Ubuntu показує ту ж помилку під час запуску сервера.
Решта програми працює нормально, лише, що один сервлет вийшов з ладу. Будь-які ідеї, де шукати, були б корисні.