我正在使用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-class的位置,我发现它是从[glassfish]\modules\joda-time-1.6.2.jar加载的,这当然不是我想要的。
为什么glassfish在每个应用程序的类路径上都包含一个特定版本的库(如JodaTime ),并且用2.0版本删除/替换它是否安全?
发布于 2014-09-30 19:05:20
GlassFish不包括任何版本的JodaTime。
我想您是自己把jar文件放在[glassfish]\modules中的,而忘记了您这样做了。您可以查看一个新的GlassFish安装来验证这一点。
从modules文件夹中删除旧版本是安全的。
https://stackoverflow.com/questions/26117886
复制相似问题