【问题标题】:Wildfly-8.1 Hibernate jars Conflicts with my own jarsWildfly-8.1 Hibernate jars 与我自己的 jars 冲突
【发布时间】:2014-09-24 05:19:21
【问题描述】:

当我从 jboss-6.3-eap 迁移到 wildfly-8-1 时,我看到了以下错误:

Caused by: java.lang.ClassCastException: com.fasterxml.classmate.types.ResolvedRecursiveType cannot be cast to com.fasterxml.classmate.types.ResolvedObjectType
    at com.fasterxml.classmate.TypeResolver._resolveSuperClass(TypeResolver.java:422)
    at com.fasterxml.classmate.TypeResolver._constructType(TypeResolver.java:395)
    at com.fasterxml.classmate.TypeResolver._fromClass(TypeResolver.java:351)
    at com.fasterxml.classmate.TypeResolver._fromAny(TypeResolver.java:299)
    at com.fasterxml.classmate.TypeResolver._fromParamType(TypeResolver.java:437)
    at com.fasterxml.classmate.TypeResolver._fromAny(TypeResolver.java:305)
    at com.fasterxml.classmate.TypeResolver._resolveSuperInterfaces(TypeResolver.java:409)
    at com.fasterxml.classmate.TypeResolver._constructType(TypeResolver.java:395)
    at com.fasterxml.classmate.TypeResolver._fromClass(TypeResolver.java:351)
    at com.fasterxml.classmate.TypeResolver.resolve(TypeResolver.java:111)
    at org.hibernate.validator.internal.util.ExecutableHelper.instanceMethodParametersResolveToSameTypes(ExecutableHelper.java:114)
    at org.hibernate.validator.internal.util.ExecutableHelper.overrides(ExecutableHelper.java:98)
    at org.hibernate.validator.internal.util.ExecutableHelper.overrides(ExecutableHelper.java:62)
    at org.hibernate.validator.internal.metadata.aggregated.ExecutableMetaData$Builder.accepts(ExecutableMetaData.java:328)
    at org.hibernate.validator.internal.metadata.aggregated.BeanMetaDataImpl$BuilderDelegate.add(BeanMetaDataImpl.java:586)
    at org.hibernate.validator.internal.metadata.aggregated.BeanMetaDataImpl$BeanMetaDataBuilder.addMetaDataToBuilder(BeanMetaDataImpl.java:500)
    at org.hibernate.validator.internal.metadata.aggregated.BeanMetaDataImpl$BeanMetaDataBuilder.add(BeanMetaDataImpl.java:494)
    at org.hibernate.validator.internal.metadata.BeanMetaDataManager.createBeanMetaData(BeanMetaDataManager.java:180)
    at org.hibernate.validator.internal.metadata.BeanMetaDataManager.getOrCreateBeanMetaData(BeanMetaDataManager.java:207)
    at org.hibernate.validator.internal.metadata.BeanMetaDataManager.isConstrained(BeanMetaDataManager.java:151)
    at org.hibernate.validator.internal.engine.ValidatorImpl.validate(ValidatorImpl.java:171)

我的应用程序在 jboss-6.3-eap 中运行良好,所有休眠配置都可以。我的休眠罐子是(我的库中没有同学罐子):

hibernate-commons-annotations-3.2.0.Final.jar
hibernate-core-3.6.7.Final.jar
hibernate-ehcache-3.6.7.Final.jar
hibernate-jpa-2.0-pi-1.0.1.Final.jar
hibernate-validator-4.1.0.Final.jar

我认为这个异常的产生是因为我的一些 jars 与 wildfly jars 冲突,我无法阻止 wildfly 加载它的默认休眠 jars。

【问题讨论】:

  • 能否提供更多信息?
  • Some tips on using Hibernate in JBoss AS 7.0.0.Final 您是否尝试设置合适的部署结构.xml?也请查看How to Use Hibernate 3 in an Application
  • 我的应用程序在 jboss-6.3-eap 中运行良好,所有休眠配置都正常。
  • 这基本上意味着您正在从两个不同的源(jar)加载同一个类。即,类加载/类路径问题。您和 wildfly 很可能正在加载不同版本的类似 jar(即休眠)。修复您的依赖关系,以便您只使用每个类的一个版本。

标签: java hibernate wildfly-8


【解决方案1】:

生成此异常是因为 wildfly hibernate-validator 库比我的应用程序 hibernate-validator 更新,所以我通过在我的应用程序的 jboss-deployment-structure.xml 排除部分添加以下行来解决问题:

<exclusions>
 <module name="org.hibernate.validator"/>
  .
  .
  .
<exclusions>

【讨论】:

    猜你喜欢
    • 2015-05-13
    • 2013-10-01
    • 1970-01-01
    • 2012-06-24
    • 2012-07-05
    • 1970-01-01
    • 1970-01-01
    • 2017-09-13
    相关资源
    最近更新 更多