Sto studiando quanto segue 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)
Si verifica quando viene avviato il server jboss in cui viene distribuito il servlet. È compilato con jdk-1.5.0_11 e ho provato a ricompilarlo con jdk-1.5.0_15 senza successo. Vale a dire che la compilation funziona correttamente ma quando viene distribuita, si verifica java.lang.VerifyError.
Quando ho cambiato il nome del metodo e ho ottenuto il seguente errore:
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)
Puoi vedere che viene mostrata una parte maggiore della firma del metodo.
La firma del metodo effettivo è
private PgasePdfTable getMonthData(int month, int year, Collection dayTypes,
Collection calendarDays,
HashMap bcSpecialDays,
Collection activityPeriods,
Locale locale, MessageResources resources) throws Exception {
Ho già provato a guardarlo con javap
e questo dà la firma del metodo come dovrebbe essere.
Quando gli altri miei colleghi controllano il codice, lo compilano e lo distribuiscono, hanno lo stesso problema. Quando il server di build preleva il codice e lo distribuisce negli ambienti di sviluppo o test (HPUX), si verifica lo stesso errore. Anche una macchina di test automatizzata che esegue Ubuntu mostra lo stesso errore all'avvio del server.
Il resto dell'applicazione funziona bene, solo un servlet è fuori servizio. Qualsiasi idea su dove cercare sarebbe utile.