Asad Rauf [http://community.jboss.org/people/imran.h] created the discussion
"Problem persisting tasks" To view the discussion, visit: http://community.jboss.org/message/625351#625351 -------------------------------------------------------------- I am trying to get persistence setup and I am get the following exception: java.lang.IllegalStateException: A JTA EntityManager cannot use getTransaction() at org.hibernate.ejb.AbstractEntityManagerImpl.getTransaction(AbstractEntityManagerImpl.java:324) at org.jbpm.task.service.TaskServiceSession.doOperationInTransaction(TaskServiceSession.java:811) at org.jbpm.task.service.TaskServiceSession.persistInTransaction(TaskServiceSession.java:786) at org.jbpm.task.service.TaskServiceSession.addUser(TaskServiceSession.java:69) I saw the a relevant thread on this forum: http://community.jboss.org/thread/162939?start=15&tstart=0 http://community.jboss.org/thread/162939?start=15&tstart=0 According to the advice on this list, I should setup two different persistence units, a separate one for tasks. That works but I end up persisting just the process info and not the task info. This means I am unable to get tasks for a user who logs in at a later time. I am sure this is not expected behavior. My current code is: EntityManagerFactory emf = Persistence.createEntityManagerFactory( "org.jbpm.persistence.jpa", HibernateConfig.getPersistenceProps() ); EntityManagerFactory emfTask = Persistence.createEntityManagerFactory( "org.jbpm.myTask", HibernateConfig.getPersistenceProps() ); Environment env = KnowledgeBaseFactory.newEnvironment(); env.set( EnvironmentName.ENTITY_MANAGER_FACTORY, emf ); env.set( EnvironmentName.TRANSACTION_MANAGER, TransactionManagerServices.getTransactionManager() ); env.set( EnvironmentName.TRANSACTION, TransactionManagerServices.getTransactionManager() ); env.set( EnvironmentName.GLOBALS, new MapGlobalResolver() ); Properties properties = new Properties(); properties.put("drools.processInstanceManagerFactory", "org.jbpm.persistence.processinstance.JPAProcessInstanceManagerFactory"); properties.put("drools.processSignalManagerFactory", "org.jbpm.persistence.processinstance.JPASignalManagerFactory"); KnowledgeSessionConfiguration config = KnowledgeBaseFactory.newKnowledgeSessionConfiguration(properties); /* Start Mina server for HT*/ MinaTaskServer server = new MinaTaskServer(taskService); Thread thread = new Thread(server); thread.start(); TaskServiceSession taskSession = taskService.createSession(); CurrentHibernate.setTaskServiceSession(taskSession); List<User> users = getSimbaService().getUserService().getAllUsers(); for(User user: users) { taskSession.addUser(new org.jbpm.task.User(user.getUsername())); } //Build Knowlede Base KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newClassPathResource("META-INF/PermissionRequest.bpmn"), ResourceType.BPMN2); KnowledgeBase kbase = kbuilder.newKnowledgeBase(); StatefulKnowledgeSession ksession = JPAKnowledgeService.newStatefulKnowledgeSession(kbase, config, env); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new CommandBasedWSHumanTaskHandler(ksession)); ksession.getWorkItemManager().registerWorkItemHandler("sendPermissionRequest", new PermissionRequestTaskHandler()); Map<String, Object> params = new HashMap<String, Object>(); params.put("description", taskDetails.toString()); params.put("requesterComments", requesterComments); params.put("approver", toUser); params.put("permissionRequestItems", taskDetails.toString()); ProcessInstance processInstance = ksession.startProcess("permissionRequest", params); Thanks for your help. -------------------------------------------------------------- Reply to this message by going to Community [http://community.jboss.org/message/625351#625351] Start a new discussion in jBPM at Community [http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034]
_______________________________________________ jboss-user mailing list [email protected] https://lists.jboss.org/mailman/listinfo/jboss-user
