В настоящее время я оцениваю Spring (с упором на WebFlow) для будущих проектов. После прочтения большого количества документов и статей (большинство из которых не очень помогли) я загрузил текущую версию Spring WebFlow (2.3.0 на момент написания) и попытался запустить примеры. Помимо решаемых, но разочаровывающих проблем с зависимостями и путями к классам, я столкнулся с первым препятствием с конфигурационными файлами, распространяемыми с примерами. Во-первых, файл webflow-config.xml образца booking-mvc даже недействителен.
<?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, в это как-то с трудом верится.
Большое спасибо.