Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 防止Glassfish使用自己版本的库而不是项目中的库_Java_Glassfish_Pom.xml_Glassfish 4 - Fatal编程技术网

Java 防止Glassfish使用自己版本的库而不是项目中的库

Java 防止Glassfish使用自己版本的库而不是项目中的库,java,glassfish,pom.xml,glassfish-4,Java,Glassfish,Pom.xml,Glassfish 4,Glassfish在其模块目录中存储了大量的第三方库。令我惊讶的是,如果我的项目使用了一个存在于那里的库,Glassfish将从那里提供它,而不是我在WAR文件中打包的正确版本 这会导致许多错误。例如,我使用了jackson数据类型jodaversion 2.6.3,它要求jackson数据绑定具有相同的版本,并且它包含在我的项目中。但是Glassfish用版本2.3.2替换了这个包,这导致了 如何防止Glassfish(4.1)用其他版本替换我使用的库?将Glassfish-web.xml文件

Glassfish在其
模块
目录中存储了大量的第三方库。令我惊讶的是,如果我的项目使用了一个存在于那里的库,Glassfish将从那里提供它,而不是我在WAR文件中打包的正确版本

这会导致许多错误。例如,我使用了
jackson数据类型joda
version 2.6.3,它要求
jackson数据绑定
具有相同的版本,并且它包含在我的项目中。但是Glassfish用版本2.3.2替换了这个包,这导致了


如何防止Glassfish(4.1)用其他版本替换我使用的库?

将Glassfish-web.xml文件添加到web-INF目录,其中包含以下内容:

<glassfish-web-app>
  <class-loader delegate="false" />
</glassfish-web-app>


这将确保在服务器类路径加载之前从war加载类

我尝试了它,并在部署时得到:
加载应用程序时出现异常:CDI部署失败:实例化类org.hibernate.validator.internal.CDI.ValidationExtension java.lang时出错异常:实例化类时出错org.hibernate.validator.internal.cdi.ValidationExtension
,然后stacktrace:org.glassfish.grizzly,
出现问题,原因是:java.lang.AbstractMethodError位于org.hibernate.validator.internal.cdi.ValidationExtension.(ValidationExtension.java:91)
@MikhailBatcer您解决问题了吗?我也在为同样的事情而斗争。@AngelAvila如果我没记错的话,我必须在Glassfish
modules
目录中重新命名冲突的旧库,最后添加
.bak
(或类似的smth来备份它们。也许移动到
bak
文件夹会更好),然后在这些库中放置我需要的版本。新库的名称应该与旧库的名称完全相同。@MikhailBatcer不是一个真正的解决方案,而是一个解决方案say@ErdincAy我太懒了,没有时间发布错误报告。也许这会给出一个真正的解决办法。