2016-11-18 11 views
0

Wildfly 10.1의 컨테이너 기반 데이터 소스에 대해 "트랜잭션이 진행 중이 아닙니다"에 문제가 있습니다. 그것이 내가 아파치 deltaspike을 추가 또한DeltaSpike 데이터 및 JTA가 작동하지 않습니다.

<!DOCTYPE hibernate-configuration PUBLIC 
      "-//Hibernate/Hibernate Configuration DTD//EN" 
      "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 
    <hibernate-configuration> 
     <session-factory> 
      <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQL95Dialect</property> 
      <property name="hibernate.transaction.jta.platform">org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform</property> 
      <property name="hibernate.show_sql">true</property> 
      <property name="hibernate.format_sql">true</property> 
      <!-- Configuration for multitenancy separate database support --> 
      <property name="hibernate.multiTenancy">DATABASE</property> 
      <property name="hibernate.tenant_identifier_resolver">org.example.TenantResolver</property> 
     </session-factory> 
    </hibernate-configuration> 

있는 hibernate.cfg.xml 그래서,

<datasource jta="true" jndi-name="java:jboss/datasources/MY_DATASOURCE" pool-name="MY_DATASOURCE_POOL" enabled="true" use-java-context="true" use-ccm="true" statistics-enabled="true"> 
       <connection-url>jdbc:postgresql://localhost:5432/test</connection-url> 
       <driver>postgresql</driver> 
       <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation> 
       <pool> 
        <min-pool-size>50</min-pool-size> 
        <max-pool-size>150</max-pool-size> 
       </pool> 
       <security> 
        <user-name>test</user-name> 
        <password>test</password> 
       </security> 
       <validation> 
        <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/> 
        <validate-on-match>true</validate-on-match> 
        <background-validation>true</background-validation> 
        <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/> 
       </validation> 
      </datasource> 

우리는이 persistence.xml을 사용하지 마십시오

내 설정이 있습니다 .properties 줄이있는 파일

globalAlternatives.org.apache.deltaspike.jpa.spi.transaction.TransactionStrategy=org.apache.deltaspike.jpa.impl.transaction.ContainerManagedTransactionStrategy 

컨테이너에서도 트랜잭션 전략 지원을 제공합니다. 하지만 불행히도 내 @Stateless 서비스에서 나는 아직 거래가 없습니다. 아무도 내 구성에 잘못된 점을 알려줄 수 있습니까?

답변

0

하면 hibernate.cfg.xml 내에서 라인

<property name="hibernate.transaction.coordinator_class">jta</property> 

를 추가 확인하고 또한 내 같은 경우 클래스 패스에 javax.interceptor.InvocationContext의 구현이있다.