試してみてください。
がProcessEngine
を構築する前にProcessEngineConfiguration
からxyzService
が含まれている豆のマップを追加します。マップからのオブジェクトは、キーによって式にアクセスできます。たとえば、次のようにField Injection
<serviceTask id="servicetask" name="Service Task" activiti:class="com.example.MyJavaDelegate">
<extensionElements>
<activiti:field name="xyzServiceExp">
<activiti:expression>${xyzService}</activiti:expression>
</activiti:field>
</extensionElements>
</serviceTask>
MyJavaDelegate
が
public class MyJavaDelegate implements JavaDelegate {
private Expression xyzServiceExp;
@Override
public void execute(DelegateExecution execution) throws Exception {
XyzService xyzService = (XyzService) xyzServiceExp.getValue(execution);
....
}
public void setXyzServiceExp(Expression xyzServiceExp) {
this.xyzServiceExp = xyzServiceExp;
}
}
それとも、beans
マップに注入サービスとJavaDelegate
インスタンスを入れて、サービスを定義することができますです
を使用してサービスタスクへの
ProcessEngineConfigurationImpl cfg =
(ProcessEngineConfigurationImpl) ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration();
Map<Object, Object> beans = new HashMap<>();
beans.put("xyzService", new XyzService());
ProcessEngine engine = cfg.setBeans(beans).buildProcessEngine();
注入するサービスタスクは
<serviceTask id="servicetask" name="Service Task"
activiti:delegateExpression="${myJavaDelegateInstance}" />
プロジェクトでSpringを使用していますか? – Evgeny
私はActivitiのためにSpringを使用していません – OutOfMind