2015-12-29 26 views
5

Son zamanlarda sorduğum soru: org.apache.commons.codec.digest.Md5Crypt.md5Crypt function. exception occured under linux, but fine under windowstomcat ve jdk ile web uygulaması arasındaki ilişki nedir?

Nihayetinde çözdüm ama yine de kafam karıştı. Bu ne oldu?

Benim jdk 1,7, benim tomcat 7, web uygulamam jdk 1.7 tarafından derlendi, commons-codec.jar sürümü 1.10 idi, ardından bir istisna atıldı.

java.lang.IllegalAccessError: tried to access method org.apache.commons.codec.digest.DigestUtils.getMd5Digest()Ljava/security/MessageDigest; from class org.apache.commons.codec.digest.Md5Crypt 

Tomcat'ımı 7'den 8'e değiştirdiğimde iyi çalıştı. Niye ya? Tomcat uygulamalara ne yapar?

+0

tomcat'ın Java 7 kullanıyor olduğundan emin misiniz? –

+0

Evet, bundan eminim. her iki tomcats da JAVA_HOME kullanıyor. –

cevap

2

7 yerine tomcat 8 kullandığınız için sorunun çözülmediğini kesinlikle önerdim ancak çalışma zamanında commons-codec JAR'ın iki farklı sürümüne sahip olduğunuz anlamına gelen java oluşturma yolunuzda bir çakışma olduğu için çözüldü. muhtemelen tomcat 7 lib klasörünüzde bir tane vardı.

+0

Taleplerimi onaylamak veya reddetmek için önceki yapım yolunuzu kontrol edebilirsiniz! – QuakeCore

+0

Daha önce kontrol ettim! Kavanozları yönetmek için maven kullanıyorum, eminim ki sadece bir tane Commons-codec kavanozu var. ve tomcat yeni indirildi. –

+0

Haklısınız, WEB-INF/lib klasöründe bir üçüncü taraf jar dosyası tarafından farklı bir commons-codec bileşeni bulundu ve maven tarafından yönetilmediğini fark ettim, bu yüzden bunu maven bağımlılığı yoluyla bulamıyorum. Bu çirkin kavanoz dosyasını sildim, iyi çalışıyor. şimdi "Bu sorunu çözüyorum" diyebilirim, değil mi? teşekkür ederim! –

İlgili konular