JavaConfig Spring Web Flow返回404未找到(JSP)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JavaConfig Spring Web Flow返回404未找到(JSP),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3236字,纯文字阅读大概需要5分钟。
内容图文
![JavaConfig Spring Web Flow返回404未找到(JSP)](/upload/InfoBanner/zyjiaocheng/774/86f8a4503bda41d7ab7cd0aaa4ff2d4f.jpg)
我一直在尝试通过将现有项目从xml配置修改为JavaConfig来实现Spring Web Flow 2.4的Java配置功能. XML版本有效,但JavaConfig没有.每次我尝试使用URL http://localhost:8080/sia_p219_ch08_spring_web_flow_order_pizza_customer_flow_complete/pizza启动流程时,它都会返回404.没有例外.控制台显示没有“找不到请求映射…”消息.该网页显示原始服务器未找到目标资源的当前表示,或者不愿意透露该目标资源是否存在.
我认为问题是请求URL没有调用披萨流(/WEB-INF/flows/pizza/pizza-flow.xml).
以下是一些代码段:
WebAppInitializer:
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[] { RootConfig.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[] { WebConfig.class };
}
@Override
// map DispatcherServlet to /
protected String[] getServletMappings() {
return new String[] { "/" };
}
RootConfig:
@Configuration
@Import({WebFlowConfig.class})
public class RootConfig {}
WebFlowConfig:
@Configuration
@ComponentScan({"pizza"})
public class WebFlowConfig extends AbstractFlowConfiguration {
static{
System.out.println("WebFlowConfig loaded");
}
@Autowired
private WebConfig webMvcConfig;
@Bean
public FlowDefinitionRegistry flowRegistry() {
return
getFlowDefinitionRegistryBuilder(flowBuilderServices())
.setBasePath("/WEB-INF/flows")
.addFlowLocationPattern("/**/*-flow.xml")
.build();
}
@Bean
public FlowExecutor flowExecutor(){
return getFlowExecutorBuilder(flowRegistry()).build();
}
@Bean
public FlowBuilderServices flowBuilderServices() {
return getFlowBuilderServicesBuilder()
.setViewFactoryCreator(mvcViewFactoryCreator())
.setDevelopmentMode(true)
.build();
}
@Bean
public MvcViewFactoryCreator mvcViewFactoryCreator() {
MvcViewFactoryCreator factoryCreator = new MvcViewFactoryCreator();
factoryCreator.setViewResolvers(Collections.singletonList(this.webMvcConfig.viewResolver()));
factoryCreator.setUseSpringBeanBinding(true);
return factoryCreator;
}
}
WebConfig
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
static{
System.out.println("WebConfig loaded");
}
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/flows/");
resolver.setSuffix(".jsp");
return resolver;
}
// configure static content handling
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
流定义文件和JSP很好,如果需要,可以在github上看到它们.
非常感谢,非常感谢任何帮助.
解决方法:
到目前为止我发现配置肯定缺少WebFlowConfig中的这部分配置(详情请参阅documentation page for integration with Spring MVC):
@Bean
@Autowired
public FlowHandlerAdapter flowHandlerAdapter(FlowExecutor flowExecutor) {
FlowHandlerAdapter flowHandlerAdapter = new FlowHandlerAdapter();
flowHandlerAdapter.setFlowExecutor(flowExecutor);
return flowHandlerAdapter;
}
@Bean
@Autowired
public FlowHandlerMapping flowHandlerMapping(FlowDefinitionRegistry flowDefinitionRegistry) {
FlowHandlerMapping flowHandlerMapping = new FlowHandlerMapping();
flowHandlerMapping.setFlowRegistry(flowDefinitionRegistry);
flowHandlerMapping.setOrder(0);
return flowHandlerMapping;
}
还要从flowBuilderServices bean定义中删除mvcViewFactoryCreator定义和setViewFactoryCreator调用.这个对我有用.
内容总结
以上是互联网集市为您收集整理的JavaConfig Spring Web Flow返回404未找到(JSP)全部内容,希望文章能够帮你解决JavaConfig Spring Web Flow返回404未找到(JSP)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。