JBoss和不同版本的Hibernate

我们使用的是JBoss 4.2.3,后者又带有Hibernate的3.2.1.ga版本。 我想使用支持JPA 2.0的Hibernate 3.5.1-FINAL。 我一直在尝试通过将我自己的hibernate jar放入我的WEB-INF / lib文件夹并在jboss-web.xml中为我的WAR创建自己的类加载器来完成这项工作。

  com.moo.foo:archive=catalog-archive   

我也尝试过:

    com.moo.catalog:loader=catalogLoader java2ParentDelegation=false    

但是我遇到了各种各样的问题,这是我目前坚持的例外:

 Caused by: java.lang.NoSuchMethodException: org.hibernate.validator.ClassValidator.(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) 

由于截止日期即将来临,我想我最好问一下它是否可能? 🙂

可能为时已晚,但它可能会帮助找到此线程的人找到上面描述的问题’由:java.lang.NoSuchMethodException:org.hibernate.validator.ClassValidator ….’:

我正在使用Jboss 4.2,Hibernate Core 3.6.5,Hibernate Validator 4.1.0,使用maven,我遇到了同样的问题。 最后我解决了它还添加了这个依赖:

   org.hibernate hibernate-validator-legacy 4.0.2.GA  

我没有亲自测试过,但是下面的主题提到了两种你可以尝试的方法(是的,我知道,它是关于JBoss 5的,但看起来问题是相同的)。

选项1

禁用java2ParentDelegation (你的第二个jboss-web.xml),将你的Hibernate JAR捆绑到你的应用程序中,并将以下属性添加到你的persistence.xml (以“避免”你所面临的问题):

 false false 

一位用户报告说这对他不起作用。

选项2

禁用java2ParentDelegation (你的第二个jboss-web.xml),将你的Hibernate JAR捆绑到你的应用程序中,并覆盖common/lib的hibernate-validator JAR。

我无法解释为什么来自commons/lib的hibernate-validator仍然被选中。