2015-12-29 57 views
5

這是我最近問的問題:org.apache.commons.codec.digest.Md5Crypt.md5Crypt function. exception occured under linux, but fine under windowstomcat和jdk和web應用程序有什麼關係?

雖然最後我解決了它,但我仍然感到困惑。是什麼讓這發生了?

我的JDK是1.7,我的tomcat是7,我的web應用程序是由JDK 1.7,公地codec.jar的編譯版本爲1.10,則拋出異常。

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從7更改爲8時,它工作正常。爲什麼? tomcat對應用程序做什麼?

+0

你確定兩個tomcat都使用Java 7嗎? –

+0

是的,我很確定。兩個tomcats都使用JAVA_HOME。 –

回答

2

我強烈建議問題沒有解決,因爲您使用的是tomcat 8而不是7,但它已解決,因爲您在java構建路徑中存在衝突,這意味着您在運行時有兩個不同版本的commons-codec JAR可能在你的tomcat 7 lib文件夾中有一個。

+0

你可以檢查你以前的構建路徑來確認或駁斥我的說法! – QuakeCore

+0

我已經檢查過!我使用maven來管理jar,我確定只有一個commons-codec jar。和tomcat是新下載的。 –

+0

你是對的,我發現了一個不同的公共編解碼器被列入在WEB-INF/lib文件夾第三方jar文件,並且它不是由行家管理,所以我不能發現通過Maven的依賴。我刪除了這個醜陋的jar文件,它工作正常。現在我可以說「我解決了這個問題」,對吧?謝謝! –

相關問題