Bir java almanın sebep.lang.VerifyError
Aşağıdaki java araştırıyorum.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)
Hangi sunucu uygulaması dağıtılır jboss sunucusu başlatıldığında oluşur. Fırsatlar-1.5.0_11 ile derlenen ve fırsatlar-1.5.0_15 ile yeniden derlemek için başarı olmadan denedim. Bu derleme iyi çalışır ama java dağıtıldığında.lang.VerifyError oluşur.
Bu code > olarak değiştirdim ve aşağıdaki hata var:
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)
Yöntem imzası daha gösterilir.
Gerçek yöntem imzası
private PgasePdfTable getMonthData(int month, int year, Collection dayTypes,
Collection calendarDays,
HashMap bcSpecialDays,
Collection activityPeriods,
Locale locale, MessageResources resources) throws Exception {
Ben zaten javap ile aramaya çalıştı ve olması gereken yöntem imza verir.
Diğer meslektaşlarım kodunu kontrol et, derle ve dağıtmak, aynı sorun var. Bu kodu sunucu alır inşa ve geliştirme veya test ortamları (HPUX) üzerinde dağıtır, aynı hata oluşur. Ayrıca otomatik test makinesi ubuntu çalışan server başlangıç sırasında aynı hatayı gösteriyor.
Uygulamanın diğer bir sunucu uygulaması bozuk tek sorun çalışır. Bak nerede herhangi bir fikir yararlı olacaktır.
CEVAP
java.lang.VerifyError
zamanında kullandığınızdan daha farklı bir kütüphane karşı derlenmiş sonucu olabilir.
Örneğin, bu Xerces ama Xerces 2 1, karşı derlenen bir programı çalıştırmaya sınıf bulunduktan sonra bana da oldu. Gerekli sınıfları (org.apache.*
ad) ClassNotFoundException
oldu zamanında bulunmuşturdeğilsonuç. Derleme yöntemi imzaları zamanında buldum ne olduğunu eşleşmedi böylece, sınıflar ve yöntemler için bir değişiklik olmuştu.
Normalde, derleyici yöntemi imzalar uyuşmuyor sorunları bayrağı olacak. JVM olacak doğrulamak bayt kodu tekrar ne zaman sınıftır yüklü, ve atar VerifyError
Java çalışıyor yapacak bir şey olmamalı izin -- örneğin, bir arama yöntemi döndürür String
ve sonra saklayan dönüş değeri bir alan tutar List
.
java.lang.VerifyError: şube hedefe sta...
Android java.lang.NoClassDefFoundError...
java.lang.noclassdeffounderror: com.go...
'java arasındaki fark ne.lang.Mat...
Java yakalamak için zaman.lang.Hata mı...