以下について調べています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 を実行している自動テスト マシンでも、サーバーの起動時に同じエラーが表示されます。
アプリケーションの残りの部分は問題なく動作しますが、1 つのサーブレットが故障しているだけです。どこを見るべきかについてのアイデアは役に立ちます。