【问题标题】:DeltaSpike with JTA data sources带有 JTA 数据源的 DeltaSpike
【发布时间】:2014-01-09 19:53:48
【问题描述】:

有没有人尝试使用 Apache 的 DeltaSpike 在 Jetty 中设置事务性? 我有一个 web 应用程序,我试图在使用 CDI 并具有 JTA 数据源的 Jetty 中运行。我的事务管理器没有被注入,它为空,因此导致错误。我包含了 deltaspike jpa jar 并按照下面给出的链接中的说明进行操作,但到目前为止它还没有工作。当我在 hibernate 类中进行深入调试时,我可以看到我的配置默认为 NOJTAPlatform,就好像没有配置 JTA。

任何想法都将不胜感激。

    <dependency>
    <groupId>org.apache.deltaspike.modules</groupId>
    <artifactId>deltaspike-jpa-module-impl</artifactId>
    <version>0.5</version>
</dependency>

DeltaSpike 配置链接:

http://deltaspike.apache.org/jpa.html

persistence.xml 中指定的我的数据源:

<persistence-unit name="database" transaction-type="JTA">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>jdbc/myDS</jta-data-source>
    <properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
        <property name="hibernate.archive.autodetection" value="class"/>
        <property name="hibernate.id.new_generator_mappings" value="true"/>
    </properties>
</persistence-unit>

【问题讨论】:

  • 您使用的是哪个 JTA 提供程序,它是如何集成的?只要它使标准 JNDI 位置中的 UserTransaction 可用,一切都应该可以正常工作。

标签: hibernate jpa cdi jta deltaspike


【解决方案1】:

您在 Jetty 中使用了哪个 CDI 实现,是否配置正确?

通过尝试一些简单的注入来确保通用 CDI 注入正常工作?

确保包含核心增量峰值依赖项 deltaspike-core-api 和 deltaspike-core-impl

根据您设置 CDI 的方式,您可能还需要 deltaspike-cdictrl-api 和特定的 cdictrl api。

更多信息http://deltaspike.apache.org/documentation.html#configuration-of-deltaspike-core

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    相关资源
    最近更新 更多