gpt4 book ai didi

java - 父级最后在 JBOSS 上进行 Hibernate Arquillian 测试

转载 作者:行者123 更新时间:2023-12-01 14:07:37 26 4
gpt4 key购买 nike

我正在进行 Arquillian 测试。主题是一个使用 Hibernate 3 的 EJB,我将其与所有其他 Maven 依赖项一起添加到压缩文件中。它将 EJB 作为封装在 EAR 中的 JAR 部署到内置了 Hibernate 4 的嵌入式 JBOSS 7。它与以下异常发生冲突:

java.lang.AbstractMethodError: org/hibernate/usertype/UserType.nullSafeSet(
Ljava/sql/PreparedStatement;Ljava/lang/Object;
ILorg/hibernate/engine/spi/SessionImplementor;)V

我坚信我的代码(针对 Hibernate 3 编译)是针对 Hibernate 4 执行的,因此出现错误。我的理解是,JBOSS 默认情况下首先执行父级操作,这可以解释该错误。我打印出存档内容作为收缩包装的一部分,所以我相信我知道 Hibernate 3 在 EAR 中。

我最后尝试将 JBOSS 更改为父级,但没有成功。其中一些可能很愚蠢,但我还是尝试了:

  1. 添加了 META-INF/jboss-classloading.xml(到 JAR EAR)

  2. 添加了 META-INF/jboss-deployment-struct.xml(到 JAR EAR 中)以尝试排除父 Hibernate:

  3. 从 JBOSS 中删除 Hibernate JAR - 这完全破坏了服务器

以下是我的设置的一些配置方面:

  • 依赖项:
    • org.hibernate:hibernate-annotations:jar:3.4.0.GA:提供
    • org.hibernate:hibernate-core:jar:3.3.2.GA:提供
    • org.jboss.arquillian.junit:arquillian-junit-container:jar:1.1.1.Final:test
    • org.jboss.arquillian.protocol:arquillian-protocol-servlet:jar:1.1.1.Final:test
    • org.jboss.as:jboss-as-arquillian-container-management:jar:7.1.1.Final:provided
    • org.jboss.shrinkwrap.resolver:shrinkwrap-resolver-impl-maven:jar:2.0.0:test
    • org.jboss.spec:jboss-javaee-web-6.0:pom:3.0.0.Final:provided
  • 指向解压的jboss-as-7.1.1.Final
  • META-INF/arquillian.xml:

    <arquillian ...>
    <defaultProtocol type="Servlet 3.0" />
    <container qualifier="jbossas-managed" default="true">
    <configuration>
    ...
    </configuration>
    </container>
    </arquillian>
  • META-INF/application.xml:

    <application ...
    version="5">
    <module><ejb>test.jar</ejb></module>
    </application>

还有什么吗? :)

非常感谢您的帮助!

最佳答案

由于您在应用程序中打包 Hibernate 3,因此您应该指定 the JPA provider as hibernate3-bundled in your persistence.xml file 。请注意,您当前的 Hibernate 3.x 版本可能无法工作,您可能需要将其升级到 >= 3.5。

或者最好使用容器提供的 Hibernate 4 JPA 提供程序,除非您有理由使用 Hibernate 3。

关于java - 父级最后在 JBOSS 上进行 Hibernate Arquillian 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18775632/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com