Java 如何在Wildfly 8.2中使用Hibernate验证程序Jar的升级版本?

Java 如何在Wildfly 8.2中使用Hibernate验证程序Jar的升级版本?,java,jboss,wildfly,wildfly-8,hibernate-validator,Java,Jboss,Wildfly,Wildfly 8,Hibernate Validator,我正在将Hibernate验证器集成到我们基于Java的web应用程序中。我们广泛使用JSR-310类型 我看到Hibernate Validator版本5.2增加了对这些类型的支持,因此我将版本5.2.0.Beta1添加到我的EAR部署的/lib目录中,就像我们的所有其他依赖项一样 但是,当我测试部署的EAR时,会出现以下错误: javax.validation.UnexpectedTypeException: HV000030: No validator could be found for

我正在将Hibernate验证器集成到我们基于Java的web应用程序中。我们广泛使用JSR-310类型

我看到Hibernate Validator版本5.2增加了对这些类型的支持,因此我将版本
5.2.0.Beta1
添加到我的EAR部署的
/lib
目录中,就像我们的所有其他依赖项一样

但是,当我测试部署的EAR时,会出现以下错误:

javax.validation.UnexpectedTypeException: HV000030: No validator could be found for type: java.time.Instant.
    at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorManager.verifyResolveWasUnique(ConstraintValidatorManager.java:218) [hibernate-validator-5.1.3.Final.jar:5.1.3.Final]
    at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorManager.findMatchingValidatorClass(ConstraintValidatorManager.java:193) [hibernate-validator-5.1.3.Final.jar:5.1.3.Final]
    at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorManager.getInitializedValidator(ConstraintValidatorManager.java:97) [hibernate-validator-5.1.3.Final.jar:5.1.3.Final]
    at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:125) [hibernate-validator-5.1.3.Final.jar:5.1.3.Final]
    at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:91) [hibernate-validator-5.1.3.Final.jar:5.1.3.Final]
    at org.hibernate.validator.internal.metadata.core.MetaConstraint.validateConstraint(MetaConstraint.java:83) [hibernate-validator-5.1.3.Final.jar:5.1.3.Final]
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraint(ValidatorImpl.java:547) [hibernate-validator-5.1.3.Final.jar:5.1.3.Final]
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:487) [hibernate-validator-5.1.3.Final.jar:5.1.3.Final]
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:451) [hibernate-validator-5.1.3.Final.jar:5.1.3.Final]
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:403) [hibernate-validator-5.1.3.Final.jar:5.1.3.Final]
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateCascadedConstraint(ValidatorImpl.java:723) [hibernate-validator-5.1.3.Final.jar:5.1.3.Final]
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateCascadedConstraints(ValidatorImpl.java:601) [hibernate-validator-5.1.3.Final.jar:5.1.3.Final]
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:412) [hibernate-validator-5.1.3.Final.jar:5.1.3.Final]
    at org.hibernate.validator.internal.engine.ValidatorImpl.validate(ValidatorImpl.java:206) [hibernate-validator-5.1.3.Final.jar:5.1.3.Final]
请注意,hibernate-validator-5.1.3.Final.jar:5.1.3.Final出现在堆栈跟踪中,而不是EAR文件中的5.2.0.Beta1

我认为现在的情况是Wildfly(我们使用的是8.2.0.Final)包含了一个旧版本的hibernate验证器JAR,而不是我们在EAR文件中包含的新版本。如何防止这种情况发生


我认为答案可能是包含一个
jboss deployment structure.xml
文件,该文件诱使Wildfly使用我提供的JAR。我发现了这个问题,但不清楚该在文件中包含什么来诱使Wildfly使用我提供的JAR。

使用jboss部署结构。xml可能是一种方法。但是,我建议只更新
modules/system/layers/base
下的模块配置。将
hibernate-validator-5.2.0.Beta1.jar
hibernate-validator-cdi-5.2.0.Beta1.jar
分别复制到
org/hibernate/validator/main
org/hibernate/validator/cdi/main
并更新相应的
modules.xml
以指向新的jar文件