Silnik Activiti nie dodaje procesu do bazy danych

0

Załączyłem jako dodatkowy moduł silnik activiti, udało mi się podłączyć konfigurację do niego. Niestety, kiedy próbuję dodać nowy proces program nie wyrzuca wyjątków ale proces się nie dodaje do bazy danych.
Tutaj kod, który jest odpowiedzialny za dodanie procesu:

ObjectMapper objectMapper = new ObjectMapper();
        ObjectNode editorNode = objectMapper.createObjectNode();
        editorNode.put("id", "canvas");
        editorNode.put("resourceId", "canvas");
        ObjectNode stencilSetNode = objectMapper.createObjectNode();
        stencilSetNode.put("namespace", "http://b3mn.org/stencilset/bpmn2.0#");
        editorNode.put("stencilset", stencilSetNode);
        Model modelData = repositoryService.newModel();

        ObjectNode modelObjectNode = objectMapper.createObjectNode();
        modelObjectNode.put("name", "aaaaaaa");
        modelObjectNode.put("revision", 1);
        modelObjectNode.put("description", "");
        modelData.setMetaInfo(modelObjectNode.toString());
        
        modelData.setName(this.processDefinitionName);
        
        repositoryService.saveModel(modelData);
        repositoryService.addModelEditorSource(modelData.getId(), editorNode.toString().getBytes("utf-8"));

Pierwsza linijka tworzy domyślną definicję procesu poprzez wstrzyknięcie zależności do beana:

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd">

	<bean id="processEngineConfiguration"
		class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">

		<property name="jdbcUrl" value="jdbc:postgresql://localhost:5432/activiti" />
		<property name="jdbcDriver" value="org.postgresql.Driver" />
		<property name="jdbcUsername" value="****" />
		<property name="jdbcPassword" value="****" />

		<property name="databaseSchemaUpdate" value="true" />

		<property name="jobExecutorActivate" value="false" />
		<property name="asyncExecutorEnabled" value="true" />
		<property name="asyncExecutorActivate" value="false" />

	</bean>

</beans>

Jak już wspomniałem całość przechodzi bez żadnych wyjątków ale baza danych jest pusta. Sprawdzam to przez wyciągnięcie listy procesów z bazy danych. Lista jest równa 0.
Nazwa bazy danych się zgadza, tak samo jak username oraz password.

0

Trochę mało informacji, oprócz "nie działa mi", ale będę wróżył z fusów:

  • wyjątki są, tylko je łykasz gdzieś pustm catch
  • wyjątki są, ale w logu gdzieś na dysku a nie na konsoli
  • wyjątki są, ale nie skonfigurowałeś loggera i lecą gdzies w eter
  • masz tą metodę objętą transakcją i zwyczajnie ona gdzieś wisi i zmiany nie są propagowane do bazy, tu by się przydało włączyć logowanie jpa/hibernate/co tam jest pod spodem i zobaczyć czy generuje się insert do bazy
0

Najprawdopodobniej będzie coś z transakcjami ... jak uruchomić to logowanie jpa ? Znalazłem też takie zdanie w dokumentacji:
"The Activiti process engine is configured through an XML file called activiti.cfg.xml. Note that this is not applicable if you’re using the Spring style of building a process engine."
Sory może to głupio zabrzmi, ale nie do końca rozumiem o co chodzi. Skoro w tym xml-u jest Springowy bean to dlaczego jest to nie odpowiedni sposób jeśli używam Springa do budowania procesu ?

0

@roserek a mozesz pokazać konfiguracje JPA którą masz i konfiguracje data source oraz JTA w springowym xmlu? Bo zakładam że tak to masz zrealizowane :)
Jeśli chodzi o cytat z dokumentacji to myśle że chodzi o to, że jak odpalasz Activiti przez Springa to konfiguracje masz w springowym kontekście, bo tylko tam Spring szuka beanów. Jak zrobisz sobie plik activiti.cfg.xml to spring go przecież nie łyknie ;]

0

Projekt ma bardzo dużo modułów (około 25 ). Połączenie z bazą danych odbywa się za pośrednictwem jboss-a, to on się łączy z bazą podczas uruchamiania. Ale wątpię czy to jest ważne ponieważ Activiti korzysta ze swojej bazy danych. Cała logika jest też w osobnym module ( jar ), do którego robię tylko API. W tym module w żaden sposób nie konfigurowałem dostępu do bazy danych (poza tym beanem), ponieważ poprzednio jak testowałem Activiti w projekcie war ( taki mały projekt testowy ) to nie potrzebowałem robić żadnych takich rzeczy. Szczerze mówiąc to myślałem że będzie to proces typu kopiuj - wklej a tutaj cały czsa schody ... Dodam jeszcze że cała aplikacja wykorzystuje hibernate tylko że w bardzo starej wersji bo 3.2.6.ga. Nie wiem czy to ma jakieś znaczenie .

1 użytkowników online, w tym zalogowanych: 0, gości: 1