2016-10-27 3 views
1

독립 실행 형 응용 프로그램에서 CDI + DeltaSpike + Camel을 사용하고 있습니다.StandAlone JNDI가없는 CDI + JTA

의 persistence.xml EntityManagerFactoryProducer에

<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> 

사용자 지정 속성 :

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의 문서에 따르면

"매우 Hibernate가 JTA 트랜잭션으로 구성하는 것이 좋습니다"

어떻게 JTA 트랜잭션을 사용할 수 있습니까? 나는 "RESOURCE_LOCAL"을 "JTA"로 변경하려고하지만 난에 대해 구성되어있는 무슨 이해하지 않는다 :

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

JNDI를 사용하지 않고 응용 프로그램 서버에 없습니다.

또한 DeltaSpike 대신 @ javax.transaction.Transactional을 사용하고 싶습니다.

답변

-1

기본적으로 Java EE 컨테이너를 사용하지 않고 대부분의 Java EE 기능을 사용하는 방법을 묻습니다.

물론 "독립 실행 형"응용 프로그램에 포함시킬 수있는 Atomikos와 같은 JTA 구현이 있습니다.

반면에, 본격적인 Java EE 환경으로 시작한 다음 필요하지 않은 것을 무시하거나 제외하는 것이 훨씬 쉬울 수도 있습니다.

요즘에는 응용 프로그램 서버가 다소 가볍기 때문에 자체 포함 된 실행 파일이 꼭 있어야하는 경우 WildFly Swarm 또는 Payara Micro를 살펴보십시오.