“上下文初始化失败”后显示设置

时间:2011-04-28 07:55:37

标签: java spring web-applications spring-mvc web.xml

我现在正在寻找几天来回答以下问题:

我有一个Spring 2.5网络应用程序,如果弹出上下文的初始化失败,我想显示某个设置屏幕。在此设置屏幕中,他们可以查看服务器无法启动的原因,并可能进行一些更改(上传新的config.properties文件)

但是我怎样才能以聪明的方式实现这个目标呢? Spring是否已经是这样的,或者我需要扩展ContextLoader例如吗?

我在web.xml中尝试过这样的东西:但这似乎不起作用:

   <error-page>
        <error-code>404</error-code>
        <location>/public/setup.jsp</location>
    </error-page>

解决方案:

我从默认的web.xml开始,在设置完成后,我用正确的'application'web.xml替换web.xml。由于更换了web.xml,服务器将重新启动。这非常有效。再次感谢您的回答。

1 个答案:

答案 0 :(得分:3)

以下是三个想法:

  • 修改上下文加载器以捕获异常,并将servlet / mapping添加到容器中,该容器将所有相关映射重定向到动态加载的servlet。查看有关如何创建动态servlet的指令的堆栈溢出线程:Dynamically add a servlet to the servletConfig
  • 或者,您可以定义一个标准servlet来处理所有请求并将它们转发到配置页面。然后你可以有一个spring bean来删除那个servlet并在完成初始化时从上下文映射(你可能想把这个代码放在spring bean的postInitalize钩子里。)
  • 您还可以尝试创建一个侦听器,检查是否存在有效的应用程序上下文,并删除“默认”映射/ servlet退出。

我认为没有标准机制来添加/删除servlet和映射容器。但看起来大多数容器都有一些API可以做到这一点。

还有第三种方法,你在暗示。假设如果发生404错误则servlet无法启动。如果你沿着那条路走下去,我想你会遇到404错误可能发生的问题,因为用户胖了手指。