Я только начал добавлять WebFlow в проект Spring MVC, и я получаю эту ошибку компиляции на моем flow.xml компонента:Spring WebFlow 2.4.2 без вести начальное состояние
Start state is missing. Add at least one state to the flow
Я нашел идентичное сообщение на SO от года назад: webflow.xsd - Start state is missing. Add at least one state to the flow. Никто не ответил на этот вопрос, но я нашел его в репозитории Jira для Spring Webflow: webflow.xsd - Start state is missing. Add at least one state to the flow. Он отмечен как «Невозможно воспроизвести».
Вот выдержка из моего очень простого webflow.xml.
<?xml version="1.0" encoding="UTF-8"?>
<flow xmlns="http://www.springframework.org/schema/webflow"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/webflow
http://www.springframework.org/schema/webflow/spring-webflow-2.4.xsd">
<on-start>
<evaluate expression="recipeService.createRecipe(currentUser.name)" result="flowScope.recipe" />
</on-start>
<view-state id="basics" view="recipe/basics" model="recipe">
<transition on="proceed" to="ingredients"></transition>
<transition on="cancel" to="cancel"></transition>
</view-state>
... more states ...
<end-state id="end" view="recipe/end"/>
<end-state id="cancel" view="recipe/end"/>
</flow>
Документация указывает, что начальное состояние не является обязательным - считается, что первым состоянием вида считается начало. Если я изменю Spring-webflow-2.4.xsd на 2.0, ошибка исчезнет, но тогда я получаю другую ошибку, если я попытаюсь использовать подсказки проверки для любой из записей состояния представления. «Basic1» и «Basic2» в приведенном ниже примере являются группами проверки в модели рецепта.
<view-state id="basics" view="recipe/basics" model="recipe" validation-hints="'basic1,basic2'">
Я использую
- STS 3.6.4
- пружине 4.1.6.RELEASE
- Spring WebFlow 2.4.2.RELEASE
- Spring Security 4.0.2.RELEASE
- Java 1.7
- Hibernate 4.3.10.FINAL
Я использую конфигурацию на основе java для всего, но я не думаю, что это проблема, если у меня нет несоответствия в версиях, которые требует Webflow 2.4.2? Я могу опубликовать свои WebMvcConfig и WebFlowConfig или pom.xml или любую другую информацию, если это поможет.
Любая помощь будет принята с благодарностью.
EDIT # 1: отрывки из Java конфигурации
From WebFlowConfig.java:
@Bean
public FlowDefinitionRegistry flowRegistry() {
return getFlowDefinitionRegistryBuilder(flowBuilderServices())
.setBasePath("/WEB-INF/views")
.addFlowLocationPattern("/**/*-flow.xml")
.build();
}
From WebMvcConfig.java
@Override
public void addViewControllers(final ViewControllerRegistry registry) {
super.addViewControllers(registry);
registry.addViewController("/recipe/basics.htm");
registry.addViewController("/recipe/ingredients.htm");
registry.addViewController("/recipe/instructions.htm");
registry.addViewController("/recipe/optional.htm");
registry.addViewController("/recipe/end.htm");
}
Используя 2.0 все страницы будут выполнены в правильном порядке.
EDIT # 2
Я забыл упомянуть, что даже с 2.4 XSD ошибка компиляции WebFlow действительно получить выполняется, так же, как и в пост от года назад. Я также нашел эту проблему относительно STS: webflow config gives incorrect "Start state definition is missing." error. Указанная версия исправления - 3.3.0.M1, поэтому я бы предположил (?), Что исправление по-прежнему включено в STS 3.6.4.
То же самое для меня. Изменили схему от 2.0 до 2.4 и удалили поддержку потока в свойствах - работает. –