Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在“后显示设置”;“上下文初始化失败”;_Java_Spring_Web Applications_Spring Mvc_Web.xml - Fatal编程技术网

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

Java 在“后显示设置”;“上下文初始化失败”;,java,spring,web-applications,spring-mvc,web.xml,Java,Spring,Web Applications,Spring Mvc,Web.xml,我现在花了几天时间寻找以下问题的答案: 我有一个spring2.5webapplication,如果Spring上下文初始化失败,我想显示一个特定的设置屏幕。在此设置屏幕中,他们可以查看服务器未启动的原因,并可能进行一些更改(上载新的config.properties文件) 但我如何才能以智能的方式实现这一点?Spring是否已经有类似的功能,或者我是否需要扩展ContextLoader 我在web.xml中尝试了以下内容:但似乎不起作用: <error-page>

我现在花了几天时间寻找以下问题的答案:

我有一个
spring2.5
webapplication,如果Spring上下文初始化失败,我想显示一个特定的设置屏幕。在此设置屏幕中,他们可以查看服务器未启动的原因,并可能进行一些更改(上载新的
config.properties
文件)

但我如何才能以智能的方式实现这一点?Spring是否已经有类似的功能,或者我是否需要扩展
ContextLoader

我在web.xml中尝试了以下内容:但似乎不起作用:

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

404
/public/setup.jsp
解决方案:

我从一个默认的web.xml开始,设置完成后,我用正确的“应用程序”web.xml替换web.xml。由于web.xml被替换,服务器将重新启动。这很有效。再次感谢您的回答。

这里有三个想法:

  • 修改上下文加载器以捕获异常,并将servlet/映射添加到容器中,该容器将所有相关映射重定向到动态加载的servlet。查看关于如何创建动态servlet的堆栈溢出说明:
  • 或者,您可以定义一个标准servlet来处理所有请求并将它们转发到配置页面。然后,您可以拥有一个Springbean,当它完成初始化时,将其servlet和映射从上下文中删除(您可能希望将该代码放入Springbean的后初始化钩子中)
  • 您还可以尝试创建一个侦听器,检查是否存在有效的应用程序上下文,并删除“默认”映射/servlet出口
我认为没有标准的机制来添加/删除servlet和从容器中映射。但看起来大多数容器都有一些API来实现这一点


还有第三条路,这是你暗示的。也就是说,如果发生404错误,则servlet无法启动。如果你沿着这条路走下去,我想你会遇到一个问题,404错误可能仅仅因为用户胖指了url而发生

好职位。。我会让你知道我将要实现什么,以及它是如何工作的。我想让你知道,这是一个完整的解决方案。我从一个默认的web.xml开始,设置完成后,我用应用程序web.xml替换web.xml。由于web.xml被替换,服务器将重新启动。这很有效。再次感谢您的回答。@michel,这是个好主意。我会记住的。谢谢你的更新