JBoss and different versions of Hibernate
Solution 1
Maybe too late, but it may help somebody that finds this thread looking for the problem described above about 'Caused by: java.lang.NoSuchMethodException: org.hibernate.validator.ClassValidator....':
I'm using Jboss 4.2, Hibernate Core 3.6.5, Hibernate Validator 4.1.0, using maven, and I have the same problem. Finally I've solved it adding also this dependency:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator-legacy</artifactId>
<version>4.0.2.GA</version>
</dependency>
Solution 2
I didn't test this personally, but the following thread mentions two approaches that you could try (yeah, I know, it's about JBoss 5 but it looks like the problem is identical).
Option 1
Disable java2ParentDelegation
(your second jboss-web.xml), bundle your Hibernate JARs into your app and add the following properties to your persistence.xml
(to "avoid" the issue you're facing):
<property name="hibernate.validator.apply_to_ddl">false</property>
<property name="hibernate.validator.autoregister_listeners">false</property>
One user reported this didn't work for him.
Option 2
Disable java2ParentDelegation
(your second jboss-web.xml), bundle your Hibernate JARs into your app and override the hibernate-validator JARs in common/lib
.
I'm not able to explain why the hibernate-validator from commons/lib
still gets picked.
![Rémi Vennereau](https://lh3.googleusercontent.com/-oOfvPuV0pEI/AAAAAAAAAAI/AAAAAAAAAMQ/H5Rj9HIOGYs/photo.jpg?sz=256)
Comments
-
Rémi Vennereau about 2 years
We are using JBoss 4.2.3 which in turn comes with version 3.2.1.ga of Hibernate. I would like to use Hibernate 3.5.1-FINAL which supports JPA 2.0. I've been trying to make this work by putting my own hibernate jars in my WEB-INF/lib folder and creating my own classloader for my WAR in jboss-web.xml
<jboss-web> <loader-repository> com.moo.foo:archive=catalog-archive </loader-repository> </jboss-web>
I've also tried:
<jboss-web> <class-loading java2ClassLoadingCompliance="false"> <loader-repository> com.moo.catalog:loader=catalogLoader <loader-repository-config>java2ParentDelegation=false</loader-repository-config> </loader-repository> </class-loading> </jboss-web>
But I get loads of various issues and this is the exception I'm currently stuck on:
Caused by: java.lang.NoSuchMethodException: org.hibernate.validator.ClassValidator.<init>(java.lang.Class, java.util.ResourceBundle, org.hibernate.validator.MessageInterpolator, java.util.Map, org.hibernate.annotations.common.reflection.ReflectionManager) at java.lang.Class.getConstructor0(Unknown Source) at java.lang.Class.getDeclaredConstructor(Unknown Source) at org.hibernate.cfg.AnnotationConfiguration.applyHibernateValidatorLegacyConstraintsOnDDL(AnnotationConfiguration.java:443)
Since the deadline is looming I thought I'd better ask if it is even possible? :)