0
1、Webでデータベースにマシン構成データを作成しました。stateMachineFactoryでstatemachineを作成すると、なぜstatemachineが動作しないのですか?
@Override
public void createMachine(MachineCfgDto data) {
String machineId = data.getName();
Set<String> status = new HashSet<String>();
String initStatus = null;
for(int i=0;i<data.getCfg().size();i++) {
if(i==0) {
initStatus =data.getCfg().get(i).getSrc();
}
status.add(data.getCfg().get(i).getSrc());
status.add(data.getCfg().get(i).getTarget());
}
Map<String,JpaRepositoryState> machineStatus = new HashMap<String,JpaRepositoryState>();
for(String s : status) {
JpaRepositoryState mStatus = stateRepository.save(new JpaRepositoryState(machineId,s,initStatus.equals(s)?true:false));
machineStatus.put(s, mStatus);
}
for(CfgData cfg : data.getCfg()) {
JpaRepositoryTransition trans = new JpaRepositoryTransition(machineStatus.get(cfg.getSrc()),machineStatus.get(cfg.getTarget()),cfg.getEvent());
trans.setKind(TransitionKind.EXTERNAL);
transitionRepository.save(trans);
}
}
2は、私がStateMachineFactoryでステートマシンを作成し、それを起動し、その後、私は、ステートマシンののSendEventメソッドによってイベントを送信し、それがうまく動作しない線量。 SendEvent後
@Override
public void submit(String machineId, String curStatus,Long[] ids) {
StateMachine<String, String> machine = stateMachineFactory.getStateMachine(machineId);
PersistStateMachineHandler handler = new PersistStateMachineHandler(machine);
handler.addPersistStateChangeListener(new TestListener(jdbcTemplate));
System.out.println("状态机是否终结:" + machine.isComplete() + "machine-uuid:"+machine.getUuid());
State<String, String> s = machine.getInitialState();
System.out.println("状态id:" + s.getId());
if(machine.isComplete()) {
machine.start();
}
machine.sendEvent("start");
System.out.println("状态机是否终结:" + machine.isComplete()+ machine.getState().getId());
handler.handleEventWithState(MessageBuilder.withPayload("start").setHeader("ids", ids).build(), curStatus);
}
、マシンの現在の状態が変化していない、それが初期状態「S0」すべての時間だ、なぜか、どのように春のステートマシンを使用してcorrentに感謝を教えてください!
この場合、私はpersitを使用しますが、それはあまりにも