2016-06-21 2 views
1

при вызове statemachine.start() Iam всегда получает следующую трассировку стека. Но это не останавливает выполнение моего конечного автомата, поскольку я не использую аннотации для переходов состояний, записи состояния и т. Д. Пожалуйста, помогите мне в исправлении этого ошибка.Ошибка при запуске конечного автомата

19:41:56.515 ERROR o.s.s.s.StateMachineObjectSupport - Unable to initialize annotation handlers 
java.lang.IllegalStateException: Bean factory must be instance of ListableBeanFactory, was null 
    at org.springframework.util.Assert.state(Assert.java:392) ~[spring-core-4.2.5.RELEASE.jar:4.2.5.RELEASE] 
    at org.springframework.statemachine.processor.StateMachineHandlerCallHelper.setBeanFactory(StateMachineHandlerCallHelper.java:93) ~[spring-statemachine-core-1.1.1.BUILD-SNAPSHOT.jar:1.1.1.BUILD-SNAPSHOT] 
    at org.springframework.statemachine.support.StateMachineObjectSupport.doStart(StateMachineObjectSupport.java:66) ~[spring-statemachine-core-1.1.1.BUILD-SNAPSHOT.jar:1.1.1.BUILD-SNAPSHOT] 
    at org.springframework.statemachine.support.AbstractStateMachine.doStart(AbstractStateMachine.java:317) [spring-statemachine-core-1.1.1.BUILD-SNAPSHOT.jar:1.1.1.BUILD-SNAPSHOT] 
    at org.springframework.statemachine.support.LifecycleObjectSupport.start(LifecycleObjectSupport.java:120) [spring-statemachine-core-1.1.1.BUILD-SNAPSHOT.jar:1.1.1.BUILD-SNAPSHOT] 
    at org.tiaa.devops.process.delegate.StateMachineDelegateImpl.execute(StateMachineDelegateImpl.java:103) [classes/:na] 
    at org.tiaa.devops.process.delegate.StateMachineDelegateImpl.executePipeline(StateMachineDelegateImpl.java:67) [classes/:na] 
    at org.tiaa.devops.process.delegate.StateMachineDelegateImpl.lambda$0(StateMachineDelegateImpl.java:59) [classes/:na] 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_66] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_66] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_66] 
    at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_66] 
+1

Пожалуйста, включите код, который ведет к этому исключению. Почти невозможно сказать, что вы делаете неправильно, не видя, что делаете. – Paul

+1

Может ли это быть решением? http://stackoverflow.com/questions/37925352/java-lang-illegalstateexception-bean-factory-must-be-instance-of-listablebeanfa – Paul

+0

Спасибо! Этот поток помог мне в исправлении проблемы. Http: //stackoverflow.com/questions/37925352/java-lang-illegalstateexception-bean-factory-must-be-instance-of-listablebeanfa – user2330825

ответ

0

Удаленный доступ к этому решению.

Я применил контекст приложения Spring к моему классу. Затем я извлек AutowireCapableBeanFactory и установил его внутри строителя. Как следует:

@Autowired 
    private ApplicationContext appContext; 

    private void buildStateMachine() throws Exception { 
     Builder<EnquiryStatus, Event> builder = StateMachineBuilder.builder(); 
     builder.configureConfiguration().withConfiguration().beanFactory(appContext.getAutowireCapableBeanFactory()); 
    } 

(скопированные из https://stackoverflow.com/a/37926670/122441)

Смежные вопросы