woe*_*fle 5 jodatime hibernate-validator jboss7.x
我们有一个使用Joda DateTime库的企业应用程序.该应用程序部署到JBoss 7.2.0 Alpha1容器中.我们的域模型中的某些类在DateTime类型的字段上具有@Past注释.为了验证这些约束,我们想使用hibernate-validator提供的约束验证器.因此,我们在ear文件的MANIFEST.MF中添加了一个依赖项'org.hibernate.validator'.我们正在使用Joda库的2.0版本.因此我们将joda-time-2.0.jar文件打包在我们耳中.我们没有使用作为JBoss 7模块提供的1.6.2版本
在使用DateTime字段验证对象后,抛出异常:
10:51:41,140 ERROR [org.acme.GlobalExceptionHandler] (EJB default - 10) Exception caught by global exception handler: javax.validation.UnexpectedTypeException: No validator could be found for type: org.joda.time.DateTime
at org.hibernate.validator.engine.ConstraintTree.verifyResolveWasUnique(ConstraintTree.java:383) [hibernate-validator-4.2.0.Final.jar:4.2.0.Final]
at org.hibernate.validator.engine.ConstraintTree.findMatchingValidatorClass(ConstraintTree.java:364) [hibernate-validator-4.2.0.Final.jar:4.2.0.Final]
at org.hibernate.validator.engine.ConstraintTree.getInitializedValidator(ConstraintTree.java:313) [hibernate-validator-4.2.0.Final.jar:4.2.0.Final]
at org.hibernate.validator.engine.ConstraintTree.validateConstraints(ConstraintTree.java:144) [hibernate-validator-4.2.0.Final.jar:4.2.0.Final]
at org.hibernate.validator.engine.ConstraintTree.validateConstraints(ConstraintTree.java:117) [hibernate-validator-4.2.0.Final.jar:4.2.0.Final]
at org.hibernate.validator.metadata.MetaConstraint.validateConstraint(MetaConstraint.java:84) [hibernate-validator-4.2.0.Final.jar:4.2.0.Final]
at org.hibernate.validator.engine.ValidatorImpl.validateConstraint(ValidatorImpl.java:452) [hibernate-validator-4.2.0.Final.jar:4.2.0.Final]
Run Code Online (Sandbox Code Playgroud)
经过一些调试后,我们检测到'ConstraintTree.findSuitableValidatorTypes'中对'TypeUtils.isAssignable(validatorType,type)'的调用失败,因为可用的验证器类型来自JBoss附带的Joda库而不是Joda库.打包在我们的耳机文件中.
我想我们在类加载方面做错了.任何人都可以给我一个提示吗?
您是否尝试过将jboss-deployment-struct.xml添加到您的ear 文件中?这样您应该能够排除 Joda 时间模块:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="org.joda.time"/>
</exclusions>
</deployment>
</jboss-deployment-structure>
Run Code Online (Sandbox Code Playgroud)
另请参阅https://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7
| 归档时间: |
|
| 查看次数: |
1294 次 |
| 最近记录: |