Java 玻璃鱼和乔达泰

Java 玻璃鱼和乔达泰,java,glassfish,jodatime,Java,Glassfish,Jodatime,我正在使用Glassfish 3.1.2.2托管多个web应用程序,其中一些应用程序使用JodaTime。最近,我将JodaTime的版本从1.6.2更新为2.0。执行此操作后,我会遇到如下错误: java.lang.NoSuchMethodError: org.joda.time.DateTime.compareTo(Lorg/joda/time/ReadableInstant;)I 通常这表示类路径上的依赖崩溃,但我找不到我的项目有多个版本的JodaTime,2.0。经过进一步的挖掘和调试

我正在使用
Glassfish 3.1.2.2
托管多个web应用程序,其中一些应用程序使用
JodaTime
。最近,我将
JodaTime
的版本从
1.6.2
更新为
2.0
。执行此操作后,我会遇到如下错误:

java.lang.NoSuchMethodError: org.joda.time.DateTime.compareTo(Lorg/joda/time/ReadableInstant;)I
通常这表示类路径上的依赖崩溃,但我找不到我的项目有多个版本的
JodaTime
2.0
。经过进一步的挖掘和调试,找到了
DateTime
-类的加载位置,我发现它是从
[glassfish]\modules\joda-time-1.6.2.jar
加载的,这当然不是我想要的


为什么glassfish在每个应用程序的类路径上都包含一个特定版本的库,比如
JodaTime
,删除它/用版本
2.0
替换它是否安全?

glassfish不包含任何版本的JodaTime

我猜您自己将jar文件放在了
[glassfish]\modules
中,但忘记了您是这么做的。您可以查看一个全新的GlassFish安装来验证这一点

modules
文件夹中删除旧版本是安全的