В Activiti все сложные объекты сериализуются и хранятся в базе данных с использованием сериализации Java. Я хочу переопределить это поведение для своих пользовательских типов и сохранить объекты как JSON. Это поможет мне лучше контролировать сохраняемый объект.
Для этого я создал свой собственный VariableType. Ниже приведен фрагмент
public class CustomVariableType extends ByteArrayType{
// overrided all the needed method.
}
Эти типы настраиваются в конфигурации действий, как показано ниже:
public class WorklistConfigurationService {
private ProcessEngineConfigurationImpl processEngineConfigurationImpl;
private List<CustomVariableType> customVarsTypes;
public void init(){
logger.debug("inside init");
for(VOVariableType varType : voVars){
logger.debug("adding type {}", varType.getTypeName());
processEngineConfigurationImpl.getVariableTypes().addType(varType, 0);
}
}
// getter and setters...
}
Ниже показано, как я ввожу значения выше в Spring.
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="worklistConfigurationService"
class="...WorklistConfigurationService" init-method="init">
<property name="customVarTypes">
<list>
<bean id="var1" class="...CustomVariableType">
<constructor-arg type="java.lang.String" value="custom" />
<constructor-arg type="java.lang.Class"
value="..CustomType" />
</bean>
</list>
</property>
<property name="processEngineConfigurationImpl" ref="processEngineConfiguration" />
</bean>
Но новый механизм сериализации никогда не используется движком activiti. Вместо этого всегда используется сериализация по умолчанию. Может кто-нибудь помочь в решении этого.
isAbleToStore
вCustomVariableType
? А что такое воВар? - person matts   schedule 20.11.2013