J'étudie ce qui suit 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)
Cela se produit lorsque le serveur jboss dans lequel le servlet est déployé est démarré. Il est compilé avec jdk-1.5.0_11 et j'ai essayé de le recompiler avec jdk-1.5.0_15 sans succès. C'est que la compilation fonctionne correctement mais lorsqu'elle est déployée, l'erreur java.lang.VerifyError se produit.
Lorsque j'ai changé le nom de la méthode et obtenu l'erreur suivante:
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)
Vous pouvez voir qu'une plus grande partie de la signature de la méthode est affichée.
La signature réelle de la méthode est
private PgasePdfTable getMonthData(int month, int year, Collection dayTypes,
Collection calendarDays,
HashMap bcSpecialDays,
Collection activityPeriods,
Locale locale, MessageResources resources) throws Exception {
J'ai déjà essayé de le regarder avec javap
et cela donne la signature de la méthode comme il se doit.
Lorsque mes autres collègues vérifient le code, le compilent et le déploient, ils ont le même problème. Lorsque le serveur de build récupère le code et le déploie sur des environnements de développement ou de test (HPUX), la même erreur se produit. Une machine de test automatisée exécutant Ubuntu montre également la même erreur lors du démarrage du serveur.
Le reste de l'application fonctionne correctement, seul ce servlet est en panne. Toute idée où chercher serait utile.