2014-09-30 110 views
2

我使用Glassfish 3.1.2.2來託管幾個Web應用程序,其中一些應用程序使用JodaTime。最近,我已將版本JodaTime1.6.2更新爲2.0。這樣做後,我得到錯誤的問題是這樣的:Glassfish和JodaTime

java.lang.NoSuchMethodError: org.joda.time.DateTime.compareTo(Lorg/joda/time/ReadableInstant;)I 

這通常表示classpath中的依賴崩潰,但我找不到我的計劃了的JodaTime多個版本,2.0是唯一一個。經過一些更多的挖掘和調試以找到DateTime -class從哪裏加載,我發現它從[glassfish]\modules\joda-time-1.6.2.jar加載,這當然不是我想要的。

爲什麼玻璃魚在每個應用程序的類路徑中都包含像JodaTime這樣的庫的特定版本,並且可以安全地將其刪除/替換爲2.0版本?

回答

1

GlassFish不包含任何版本的JodaTime。

我想你自己把這個jar文件放在[glassfish]\modules之內,忘了你做了那個。您可以查看新的GlassFish安裝來驗證該安裝。

modules文件夾中刪除舊版本是安全的。

+0

我明白了,一定是我的團隊裏有一些聰明的褲子。 – Tobb 2014-10-01 07:33:08