有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Spring MVC和应用程序上下文多次刷新尝试

概念是我们可以创建一个spring应用程序,而不需要XML文件,因此请使用java配置文件指出一些解决方案

我正在创建一个示例web mvc应用程序,作为概念证明。我遇到了一个问题,即一旦提交了表单,就无法使用表单再次提交。它给出了这个错误

GenericApplicationContext does not support multiple refresh attempts: just call 'refresh' once

我知道我的问题在哪里,但我似乎找不到解决办法

控制器。爪哇

 AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();

//@TODO hibernate broke validity
//@TODO disable submit until data is valid
@RequestMapping(value="form", method=RequestMethod.POST)
public String submitForm(@ModelAttribute @Valid Subscriber subscriber,BindingResult result, Model m) {
    m.addAttribute("message", "Successfully saved person: " + subscriber.toString());
    ctx.register(WebConfiguration.class);
    //@TODO fix refresher only once issue
    ctx.refresh();
    SubscriberDao sao = ctx.getBean(SubscriberDao.class);
    sao.savePerson(subscriber);
    return "formPage";
}

如果你看这里,ctx。每次我转到URL时都会调用refresh。 我试着把它放在一个构造函数中,但没有成功。如果这是错误的,谁能帮我找到一个解决方案/更好的替代方案


共 (1) 个答案

  1. # 1 楼答案

    这是一个由两部分组成的答案。 我已经发现,当我们尝试在RequestMapping中刷新上下文时,问题的一个组成部分。然而,这不是真正的解决办法。真正的解决方案是声明一个我仍然需要处理的WebApplicationInitializer

    我离题了

    解决方案:

    将AnnotationConfigApplicationContext替换为AnnotationConfigWebApplicationContext,这样可以使上述代码正常工作

    但从长远来看,建议花更多的时间来理解WebApplicationInitializer是如何实现的