问题
I'm creating a state machine object using the provided builder as follows:
10.2 State Machine via Builder
I'm seeing the following exception:
ERROR org.springframework.statemachine.support.StateMachineObjectSupport - Unable to initialize annotation handlers java.lang.IllegalStateException: Bean factory must be instance of ListableBeanFactory, was null
The exception isn't preventing the state machine from functioning as expected. However, I would like to get down to the bottom of why I'm seeing this.
Anyone know how I can stop this exception from showing?
Thanks.
回答1:
Managed to get a solution for this.
I autowired the the Spring application context into my class. I then extracted the AutowireCapableBeanFactory from this and set this up inside the builder. As follows:
@Autowired
private ApplicationContext appContext;
private void buildStateMachine() throws Exception {
Builder<EnquiryStatus, Event> builder = StateMachineBuilder.builder();
builder.configureConfiguration().withConfiguration().beanFactory(appContext.getAutowireCapableBeanFactory());
}
回答2:
Just add this:
builder.configureConfiguration().withConfiguration().beanFactory(new StaticListableBeanFactory());
来源:https://stackoverflow.com/questions/37925352/java-lang-illegalstateexception-bean-factory-must-be-instance-of-listablebeanfa