尝试使用最新的hibernate版本将Web应用程序部署到jboss4.2.3.GA

时间:2011-07-28 12:45:07

标签: hibernate jboss-4.2.x jboss-web

我正在尝试使用hibernate将Web应用程序部署到Jboss 4.3.2.GA,但我收到以下错误。

Invocation of init method failed; nested exception is
org.hibernate.AnnotationException:
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)

我在/ WEB-INF中有一个“jboss-web.xml” 如

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
    <loader-repository>
    <loader-repository-config>
    java2ParentDelegation=false
    </loader-repository-config>
    </loader-repository> 
 </jboss-web>

但我仍然有同样的错误

2 个答案:

答案 0 :(得分:3)

我添加了以下依赖项,我的问题解决了。感谢Hibernate的人,他们为我们提供了一个传统的验证器。

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator-legacy</artifactId>
        <version>4.0.2.GA</version>
        <exclusions>
            <exclusion>
                <artifactId>hibernate-commons-annotations</artifactId>
                <groupId>org.hibernate</groupId>
            </exclusion>
        </exclusions>
    </dependency>

答案 1 :(得分:1)

长话短说。你不能在JBoss 4.2.3中使用最新的Hibernate版本(3.5+),因为4.2.3中的Hibernate依赖项和EJB JAR之间存在干扰。你有3个选择:

  • 使用4.2.3附带的Hibernate并且不会干扰EJB JAR
  • 使用没有Hibernate的早期版本的JBoss(如4.0.2)
  • 使用具有较新版本Hibernate的更高版本的JBoss