JPA process variables / JTA transaction
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-06-2014 08:39 AM
Hi
i'm using activiti-engine (5.16.4) with WildFly (8.1.0) and a Postgresql DB (9.3.5) .
this is my persistence.xml:
and my ProcessEngineConfiguration:
[java]
public class ProcessEngineConfiguration extends LocalProcessEngineLookup{
private ProcessEngine processEngine;
public int getPrecedence() {
return 10;
}
private TransactionManager lookupTransactionManager() {
try {
return InitialContext.doLookup("java:jboss/TransactionManager");
} catch (NamingException e) {
throw new RuntimeException("Unable to lookup transaction manager",
e);
}
}
public ProcessEngine getProcessEngine() {
CdiJtaProcessEngineConfiguration processEngineConfiguration = new CdiJtaProcessEngineConfiguration();
processEngineConfiguration.setProcessEngineName("default");
processEngineConfiguration.setDataSourceJndiName("java:/testDS");
processEngineConfiguration.setTransactionManager(lookupTransactionManager());
processEngineConfiguration.setDatabaseType("postgres");
processEngineConfiguration.setTransactionsExternallyManaged(false);
processEngineConfiguration.setCreateDiagramOnDeploy(false);
processEngineConfiguration.setDatabaseSchemaUpdate("create-drop");
processEngineConfiguration.setJpaPersistenceUnitName("test");
processEngineConfiguration.setJpaHandleTransaction(true);
processEngineConfiguration.setJpaCloseEntityManager(true);
processEngine = processEngineConfiguration.buildProcessEngine();
return processEngine;
}
public void ungetProcessEngine() {
processEngine.close();
processEngine = null;
}
}
[/java]
and a simple JPA-Entity:
[java]
@Entity
public class TestDOA extends JPAEntityVariableType {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
public TestDOA() {
}
public TestDOA(String name) {
this.name = name;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof TestDOA)) {
return false;
}
TestDOA other = (TestDOA) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "id=" + id + " ]";
}
}
[/java]
[java]
@Stateless
public class TestDAOService {
/** JPA Entity Manager*/
@PersistenceContext(unitName = "test")
EntityManager em;
public TestDAO addNewTestDAO(String name) {
TestDAO p = new TestDAO(name);
em.persist(p);
return p;
}
}
[/java]
What I'm trying to do is to create and save an instance of TestDAO and reference it at the start of a new process instance.
[java]
@RunWith(Arquillian.class)
public class ActivitiIntegrationIT {
@EJB
TestDAOService testService;
@Test
public void create_testdao_process() {
TestDAO foo = testService.addNewTestDAO("foo");
TestDAO bar = testService.addNewTestDAO("bar");
ProcessEngines.init();
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
RepositoryService reproService = processEngine.getRepositoryService();
RuntimeService runtimeService = processEngine.getRuntimeService();
reproService.createDeployment()
.addClasspathResource("process.bpmn20.xml").name("test")
.deploy();
Map<String, Object> map_1 = new HashMap<String, Object>();
map_1.put("foo_test", foo);
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("process", map_1);
Assert.assertNotNull(processInstance);
}
}
[/java]
Now I'm getting following error:
when i call the runtimeService.startProcessInstanceByKey method:
I think it's related to this post: http://forums.activiti.org/content/jta-bug
but I'm not sure. Is it generally not possible to use JPA + JTA + Activiti or am I doing something wrong?
Regards
i'm using activiti-engine (5.16.4) with WildFly (8.1.0) and a Postgresql DB (9.3.5) .
this is my persistence.xml:
<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="test" transaction-type="JTA"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>java:/testDS</jta-data-source> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" /> <property name="hibernate.hbm2ddl.auto" value="create-drop" /> <property name="hibernate.show_sql" value="true" /> <property name="hibernate.format_sql" value="true" /> <property name="hibernate.connection.useUnicode" value="true" /> <property name="hibernate.connection.characterEncoding" value="UTF-8" /> <property name="jboss.entity.manager.factory.jndi.name" value="java:/testFactory" /> <property name="hibernate.transaction.factory_class" value="org.hibernate.transaction.CMTTransactionFactory"/> <property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform" /> <property name="hibernate.connection.release_mode" value="auto" /> </properties> </persistence-unit></persistence>
and my ProcessEngineConfiguration:
[java]
public class ProcessEngineConfiguration extends LocalProcessEngineLookup{
private ProcessEngine processEngine;
public int getPrecedence() {
return 10;
}
private TransactionManager lookupTransactionManager() {
try {
return InitialContext.doLookup("java:jboss/TransactionManager");
} catch (NamingException e) {
throw new RuntimeException("Unable to lookup transaction manager",
e);
}
}
public ProcessEngine getProcessEngine() {
CdiJtaProcessEngineConfiguration processEngineConfiguration = new CdiJtaProcessEngineConfiguration();
processEngineConfiguration.setProcessEngineName("default");
processEngineConfiguration.setDataSourceJndiName("java:/testDS");
processEngineConfiguration.setTransactionManager(lookupTransactionManager());
processEngineConfiguration.setDatabaseType("postgres");
processEngineConfiguration.setTransactionsExternallyManaged(false);
processEngineConfiguration.setCreateDiagramOnDeploy(false);
processEngineConfiguration.setDatabaseSchemaUpdate("create-drop");
processEngineConfiguration.setJpaPersistenceUnitName("test");
processEngineConfiguration.setJpaHandleTransaction(true);
processEngineConfiguration.setJpaCloseEntityManager(true);
processEngine = processEngineConfiguration.buildProcessEngine();
return processEngine;
}
public void ungetProcessEngine() {
processEngine.close();
processEngine = null;
}
}
[/java]
and a simple JPA-Entity:
[java]
@Entity
public class TestDOA extends JPAEntityVariableType {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
public TestDOA() {
}
public TestDOA(String name) {
this.name = name;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof TestDOA)) {
return false;
}
TestDOA other = (TestDOA) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "id=" + id + " ]";
}
}
[/java]
[java]
@Stateless
public class TestDAOService {
/** JPA Entity Manager*/
@PersistenceContext(unitName = "test")
EntityManager em;
public TestDAO addNewTestDAO(String name) {
TestDAO p = new TestDAO(name);
em.persist(p);
return p;
}
}
[/java]
What I'm trying to do is to create and save an instance of TestDAO and reference it at the start of a new process instance.
[java]
@RunWith(Arquillian.class)
public class ActivitiIntegrationIT {
@EJB
TestDAOService testService;
@Test
public void create_testdao_process() {
TestDAO foo = testService.addNewTestDAO("foo");
TestDAO bar = testService.addNewTestDAO("bar");
ProcessEngines.init();
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
RepositoryService reproService = processEngine.getRepositoryService();
RuntimeService runtimeService = processEngine.getRuntimeService();
reproService.createDeployment()
.addClasspathResource("process.bpmn20.xml").name("test")
.deploy();
Map<String, Object> map_1 = new HashMap<String, Object>();
map_1.put("foo_test", foo);
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("process", map_1);
Assert.assertNotNull(processInstance);
}
}
[/java]
Now I'm getting following error:
org.activiti.engine.impl.cfg.jta.JtaTransactionContext$TransactionStateSynchronization@60207dc7 with exception: java.lang.IllegalStateException: A JTA EntityManager cannot use getTransaction()
when i call the runtimeService.startProcessInstanceByKey method:
WARN [com.arjuna.ats.jta] (default task-4) ARJUNA016029: SynchronizationImple.afterCompletion - failed for org.activiti.engine.impl.cfg.jta.JtaTransactionContext$TransactionStateSynchronization@60207dc7 with exception: java.lang.IllegalStateException: A JTA EntityManager cannot use getTransaction() at org.hibernate.jpa.spi.AbstractEntityManagerImpl.getTransaction(AbstractEntityManagerImpl.java:1368) [hibernate-entitymanager-4.3.5.Final.jar:4.3.5.Final] at org.activiti.engine.impl.variable.EntityManagerSessionImpl.isTransactionActive(EntityManagerSessionImpl.java:75) [activiti-engine-8425170480873796608.jar:] at org.activiti.engine.impl.variable.EntityManagerSessionImpl$2.execute(EntityManagerSessionImpl.java:111) [activiti-engine-8425170480873796608.jar:] at org.activiti.engine.impl.cfg.jta.JtaTransactionContext$TransactionStateSynchronization.afterCompletion(JtaTransactionContext.java:103) [activiti-engine-8425170480873796608.jar:] at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.afterCompletion(SynchronizationImple.java:96) at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.afterCompletion(TwoPhaseCoordinator.java:532) at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.afterCompletion(TwoPhaseCoordinator.java:463) at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.cancel(TwoPhaseCoordinator.java:118) at com.arjuna.ats.arjuna.AtomicAction.abort(AtomicAction.java:186) at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.rollbackAndDisassociate(TransactionImple.java:1248) at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.rollback(BaseTransaction.java:143) at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.rollback(BaseTransactionManagerDelegate.java:114) at org.activiti.engine.impl.interceptor.JtaTransactionInterceptor.doRollback(JtaTransactionInterceptor.java:146) [activiti-engine-8425170480873796608.jar:] at org.activiti.engine.impl.interceptor.JtaTransactionInterceptor.execute(JtaTransactionInterceptor.java:67) [activiti-engine-8425170480873796608.jar:] at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:31) [activiti-engine-8425170480873796608.jar:] at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:40) [activiti-engine-8425170480873796608.jar:] at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:35) [activiti-engine-8425170480873796608.jar:] at org.activiti.engine.impl.RuntimeServiceImpl.startProcessInstanceByKey(RuntimeServiceImpl.java:77) [activiti-engine-8425170480873796608.jar:] at com.company.project.test.integration.control.activiti.ActivitiIntegrationIT.create_testdao_process(ActivitiIntegrationIT.java:134) [classes:] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_67] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_67] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_67] at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_67] at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) [arquillian-junit.jar:] at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [arquillian-junit.jar:] at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) [arquillian-junit.jar:] at org.jboss.arquillian.junit.Arquillian$6$1.invoke(Arquillian.java:270) [arquillian-junit.jar:] at org.jboss.arquillian.container.test.impl.execution.LocalTestExecuter.execute(LocalTestExecuter.java:60) [arquillian-core.jar:] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_67] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_67] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_67] at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_67] at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) [arquillian-core.jar:] at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) [arquillian-core.jar:] at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) [arquillian-core.jar:] at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:135) [arquillian-core.jar:] at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:115) [arquillian-core.jar:] at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67) [arquillian-core.jar:] at org.jboss.arquillian.container.test.impl.execution.ContainerTestExecuter.execute(ContainerTestExecuter.java:38) [arquillian-core.jar:] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_67] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_67] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_67] at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_67] at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) [arquillian-core.jar:] at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) [arquillian-core.jar:] at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) [arquillian-core.jar:] at org.jboss.arquillian.test.impl.TestContextHandler.createTestContext(TestContextHandler.java:102) [arquillian-core.jar:] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_67] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_67] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_67] at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_67] at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) [arquillian-core.jar:] at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) [arquillian-core.jar:] at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:84) [arquillian-core.jar:] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_67] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_67] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_67] at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_67] at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) [arquillian-core.jar:] at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) [arquillian-core.jar:] at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:65) [arquillian-core.jar:] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_67] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_67] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_67] at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_67] at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) [arquillian-core.jar:] at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) [arquillian-core.jar:] at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:135) [arquillian-core.jar:] at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.test(EventTestRunnerAdaptor.java:111) [arquillian-core.jar:] at org.jboss.arquillian.junit.Arquillian$6.evaluate(Arquillian.java:263) [arquillian-junit.jar:] at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:226) [arquillian-junit.jar:] at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:314) [arquillian-junit.jar:] at org.jboss.arquillian.junit.Arquillian.access$100(Arquillian.java:46) [arquillian-junit.jar:] at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:240) [arquillian-junit.jar:] at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) [arquillian-junit.jar:] at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) [arquillian-junit.jar:] at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) [arquillian-junit.jar:] at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) [arquillian-junit.jar:] at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) [arquillian-junit.jar:] at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) [arquillian-junit.jar:] at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) [arquillian-junit.jar:] at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) [arquillian-junit.jar:] at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:185) [arquillian-junit.jar:] at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:314) [arquillian-junit.jar:] at org.jboss.arquillian.junit.Arquillian.access$100(Arquillian.java:46) [arquillian-junit.jar:] at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:199) [arquillian-junit.jar:] at org.junit.runners.ParentRunner.run(ParentRunner.java:309) [arquillian-junit.jar:] at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:147) [arquillian-junit.jar:] at org.junit.runner.JUnitCore.run(JUnitCore.java:160) [arquillian-junit.jar:] at org.junit.runner.JUnitCore.run(JUnitCore.java:138) [arquillian-junit.jar:] at org.jboss.arquillian.junit.container.JUnitTestRunner.execute(JUnitTestRunner.java:65) [arquillian-junit.jar:] at org.jboss.arquillian.protocol.servlet.runner.ServletTestRunner.executeTest(ServletTestRunner.java:160) [arquillian-protocol.jar:] at org.jboss.arquillian.protocol.servlet.runner.ServletTestRunner.execute(ServletTestRunner.java:126) [arquillian-protocol.jar:] at org.jboss.arquillian.protocol.servlet.runner.ServletTestRunner.doGet(ServletTestRunner.java:90) [arquillian-protocol.jar:] at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) [jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final] at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:113) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final] at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) [undertow-core-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:61) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) [undertow-core-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) [undertow-core-1.0.15.Final.jar:1.0.15.Final] at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final] at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final] at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:240) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:73) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:146) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.server.Connectors.executeRootHandler(Connectors.java:177) [undertow-core-1.0.15.Final.jar:1.0.15.Final] at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:727) [undertow-core-1.0.15.Final.jar:1.0.15.Final] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_67] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_67] at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_67]
I think it's related to this post: http://forums.activiti.org/content/jta-bug
but I'm not sure. Is it generally not possible to use JPA + JTA + Activiti or am I doing something wrong?
Regards
Labels:
- Labels:
-
Archive
1 REPLY 1
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-17-2014 06:32 AM
Those settings don't seem right:
processEngineConfiguration.setTransactionsExternallyManaged(false);
processEngineConfiguration.setJpaHandleTransaction(true);
processEngineConfiguration.setJpaCloseEntityManager(true);
Shouldn't that be true - false - false in this case (cause the transaction manager is managed by JBoss)?
processEngineConfiguration.setTransactionsExternallyManaged(false);
processEngineConfiguration.setJpaHandleTransaction(true);
processEngineConfiguration.setJpaCloseEntityManager(true);
Shouldn't that be true - false - false in this case (cause the transaction manager is managed by JBoss)?
