首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StandAlone CDI + JTA无JNDI

StandAlone CDI + JTA无JNDI
EN

Stack Overflow用户
提问于 2016-10-27 12:11:59
回答 1查看 499关注 0票数 1

我在一个独立的应用程序中使用CDI + DeltaSpike + Camel。

下面是我当前的设置:

persistence.xml

代码语言:javascript
复制
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
         version="2.0">
<persistence-unit name="primary" transaction-type="RESOURCE_LOCAL">
    <shared-cache-mode>DISABLE_SELECTIVE</shared-cache-mode>
</persistence-unit>

EntityManagerFactoryProducer上的自定义属性:

代码语言:javascript
复制
properties.put("hibernate.connection.provider_class", "org.example.HikariConnectionProvider");

我使用DeltaSpike JPA事务处理(https://deltaspike.apache.org/documentation/jpa.html):

  • org.apache.deltaspike.jpa.api.transaction.TransactionScoped;
  • org.apache.deltaspike.jpa.api.transaction.Transactional;

我想使用Infinispan同步我的应用程序缓存。根据Infinispan的说法:

强烈建议使用JTA事务配置Hibernate

如何使用JTA事务?我试图将"RESOURCE_LOCAL“更改为"JTA”,但我不明白我应该配置什么:

  • hibernate.transaction.factory_class
  • hibernate.transaction.jta.platform

我不使用JNDI,也不在应用程序服务器中。

另外,我希望使用@javax.transaction.Transactional而不是DeltaSpike。

EN

回答 1

Stack Overflow用户

发布于 2016-10-29 15:52:22

本质上,您是在询问如何在不使用Java容器的情况下使用大多数Java特性。

当然,有些JTA实现可以嵌入到“独立”应用程序中,比如Atomikos。

另一方面,从一个成熟的Java环境开始,然后忽略或排除任何您不需要的东西,可能要容易得多。

应用服务器现在相当轻量级,如果一个自带的可执行文件对你来说是必须的,那么请看一看WildFly群集或PayaraMicro.com。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40284287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档