0

下面是我的一个类项目,它使用的是 spring-statemachine-core-1.0.2.RELEASE-sources.jar,它实现了从一种状态到另一种状态的简单转换。它在AbstractStateMachine.acceptEvent方法中的currentState上咳出空指针异常。感谢帮助/想法。

org.springframework.statemachine.support.AbstractStateMachine.acceptEvent 的 java.lang.NullPointerException(AbstractStateMachine.java:591)

import java.util.Arrays;
import java.util.HashSet;

import org.springframework.statemachine.StateMachine;
import org.springframework.statemachine.config.StateMachineBuilder;
import org.springframework.statemachine.config.StateMachineBuilder.Builder;

public class Processor {

public static void main(String[] args) throws Exception {

        Builder<String, String> builder = StateMachineBuilder.builder();

        builder.configureStates()
            .withStates()
                .initial("INIT").end("END")
                .states(new HashSet<String>(Arrays.asList("INIT","MIDDLE","END"))); 

        builder.configureTransitions()
        .withExternal()
        .source("INIT").target("MIDDLE").event("START")
        .and()
        .withExternal()
        .source("MIDDLE").target("END");

        builder.configureConfiguration().withConfiguration().autoStartup(true);

        StateMachine<String, String> stateMachine = builder.build();
        stateMachine.start();               
        stateMachine.sendEvent("START");
        stateMachine.stop();

        }   
    }
4

1 回答 1

0

是的,手动生成器机器没有默认值taskExecutor。它已经在 master 和 1.0.x 分支中修复,但我们还没有发布 1.0.3。解决方法是手动设置:

builder
    .configureConfiguration()
        .withConfiguration()
            .taskExecutor(new SyncTaskExecutor())
            .autoStartup(true);
于 2016-05-08T08:31:41.160 回答