Использование гибернативного валидатора JodaTime в ограничениях проверки бина в JBoss

У нас есть корпоративное приложение, использующее библиотеку Joda DateTime. Приложение развертывается в контейнере JBoss 7.2.0 Alpha1. Некоторые классы в нашей модели предметной области имеют аннотации @Past для полей типа DateTime. Чтобы проверить эти ограничения, мы хотели бы использовать валидаторы ограничений, предоставляемые валидатором hibernate -. Поэтому мы добавили зависимость org.hibernate.validator в файл MANIFEST.MF нашего уха. Мы используем версию 2.0 библиотеки Joda. Поэтому мы упаковали файл joda -time -2.0.jar в наше ухо. Мы не используем версию 1.6.2, доступную в виде модуля JBoss 7

. При проверке объекта с полем 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]

После некоторой отладки мы обнаружили, что вызов 'TypeUtils.isAssignable (validatorType, type )' в 'ConstraintTree.findSuitableValidatorTypes' завершается ошибкой, поскольку доступные типы валидаторов берутся из библиотеки Joda, поставляемой с JBoss, вместо Библиотека Joda, упакованная в наш файл ear.

Я предполагаю, что мы делаем что-то неправильно в отношении загрузки классов. Может ли кто-нибудь дать мне подсказку?

5
задан woelfle 25 July 2012 в 11:45
поделиться