В настоящее время я оцениваю Spring (с акцентом на WebFlow) для будущих проектов. После прочтения большого количества документов и статей (большинство из которых не очень помогло) я скачал текущую версию Spring WebFlow (2.3.0 на момент написания) и попытался запустить примеры. Помимо решаемых, но разочаровывающих проблем с зависимостями и classpath, я преодолел первое препятствие с файлами конфигурации, распространяемыми с примерами. Прежде всего, webflow-config.xml booking-mvc-sample даже недействителен.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:webflow="http://www.springframework.org/schema/webflow-config"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/webflow-config
http://www.springframework.org/schema/webflow-config/spring-webflow-config.xsd">
<!-- Executes flows: the entry point into the Spring Web Flow system -->
<webflow:flow-executor id="flowExecutor">
<webflow:flow-execution-listeners>
<webflow:listener ref="securityFlowExecutionListener" />
</webflow:flow-execution-listeners>
</webflow:flow-executor>
<!-- The registry of executable flow definitions -->
<webflow:flow-registry id="flowRegistry" flow-builder-services="flowBuilderServices" base-path="/WEB-INF">
<webflow:flow-location-pattern value="/**/*-flow.xml" />
</webflow:flow-registry>
<!-- Plugs in a custom creator for Web Flow views -->
<webflow:flow-builder-services id="flowBuilderServices" view-factory-creator="mvcViewFactoryCreator"
development="true" validator="validator" />
<!-- Configures Web Flow to use Tiles to create views for rendering; Tiles allows for applying consistent layouts to your views -->
<bean id="mvcViewFactoryCreator" class="org.springframework.webflow.mvc.builder.MvcViewFactoryCreator">
<property name="viewResolvers" ref="tilesViewResolver"/>
<property name="useSpringBeanBinding" value="true" />
</bean>
<!-- Installs a listener to apply Spring Security authorities -->
<bean id="securityFlowExecutionListener" class="org.springframework.webflow.security.SecurityFlowExecutionListener" />
<!-- Bootstraps JSR-303 validation and exposes it through Spring's Validator interface -->
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/>
</beans>
- cvc-complex-type.2.4.c: соответствующий шаблон подстановки является строгим, но не найдено объявление для элемента 'webflow: flow-executor'.
- cvc-complex-type.2.4.c: соответствующий шаблон подстановки является строгим, но не удалось найти объявление для элемента 'webflow: flow-registry'.
- cvc-complex-type.2.4.c: соответствующий шаблон подстановки является строгим, но не найдено никакого объявления для элемента 'webflow: flow-builder-services'.
Изменение http://www.springframework.org/schema/webflow-config/spring-webflow-config.xsd на http://www.springframework.org/schema/webflow-config/spring-webflow-config-2.3.xsd удаляет ошибки проверки из Eclipse, но SAXParser по-прежнему жалуется при запуске.
Есть ли способ обойти это? Может кто-нибудь помочь мне с рабочим конфигом или указать рабочий учебник (или правильный, если это ошибка с примерами, или тот, который показал мне, как правильно настроить SWF, если я делаю это неправильно)?
Прямо сейчас я не так уж далек от того, чтобы выбросить SWF из нашего списка возможных фреймворков как «не запускающийся из коробки», и - учитывая базу пользователей и распространенность Spring, в это как-то трудно поверить.
Большое спасибо.