Проблемы при добавлении Spring Webflow в приложение Spring Boot и Joinfaces - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь добавить веб-поток в приложение весенней загрузки с помощью библиотеки joinfaces.

Я использую primefaces-spring-boot-starter и jetty-spring-boot-starter для настройки сервера Jetty.

Добавлены необходимые зависимости веб-потока в pom и настроены необходимые flowregistry, flowbuilderservices, flowexecutor и flowhandlermapping, ...

Приложение запускается правильно, считывает определения потоков из xmls и, если входит в поток через url, принимает решениесостояния выполняются правильно, читает соответствующий файл .xhtml состояния представлений, вызывает методы управляемого бина, и все они, по-видимому, работают хорошо.

Но ... после завершения выполнения методов бина, когда я надеюсь, что html будет отображенв браузере приложение перенаправляется в корневую папку приложения без ошибок в журнале.

У меня такое поведение со всеми потоками приложения.Методы bean-компонентов выполняются корректно, и когда я надеюсь увидеть html ..., перенаправленный в root.

Кто-нибудь пытался успешно добавить веб-поток в приложение jsf joinfaces?Мне не хватает переопределить конфигурацию соединений по умолчанию?

Спасибо.

public class MvcConfiguration implements WebMvcConfigurer {

    @Autowired
    private WebFlowConfiguration webFlowConfiguration;

    @Bean
    public FlowHandlerMapping flowHandlerMapping() {
        FlowHandlerMapping handlerMapping = new FlowHandlerMapping();
        handlerMapping.setOrder(-1);
        handlerMapping.setFlowRegistry(this.webFlowConfiguration.flowRegistry());
        return handlerMapping;
    }

    @Bean
    public FlowHandlerAdapter flowHandlerAdapter() {
        JsfFlowHandlerAdapter adapter = new JsfFlowHandlerAdapter();
        adapter.setFlowExecutor(this.webFlowConfiguration.flowExecutor());
        return adapter;
    }

    @Bean
    public ViewResolver faceletsViewResolver() {
        UrlBasedViewResolver resolver = new UrlBasedViewResolver();
        resolver.setViewClass(JsfView.class);
        resolver.setPrefix("/");
        resolver.setSuffix(".xhtml");
        return resolver;
    }
}

@Configuration
public class WebFlowConfiguration extends AbstractFacesFlowConfiguration {

    @Bean
    public FlowDefinitionRegistry flowRegistry() {
        return getFlowDefinitionRegistryBuilder()
                .setBasePath("classpath*:/META-INF/resources/flows")
                .addFlowLocationPattern("/**/*.xml")
                .setFlowBuilderServices(flowBuilderServices())
                .build();
    }

    @Bean
    public FlowBuilderServices flowBuilderServices() {
        return getFlowBuilderServicesBuilder()
                .setDevelopmentMode(true)
                .setViewFactoryCreator(new JsfViewFactoryCreator())
                .build();
    }

    @Bean
    public FlowExecutor flowExecutor() {
        return getFlowExecutorBuilder(flowRegistry())
                .addFlowExecutionListener(new FlowFacesContextLifecycleListener())
                .addFlowExecutionListener(new SecurityFlowExecutionListener())
                .setMaxFlowExecutionSnapshots(0)
                .build();
    }

}
...