忽略spring属性文件未找到异常

时间:2013-12-18 06:37:42

标签: java spring tomcat config

我正在使用tomcat 6.我的应用程序上下文xml文件包含:

<bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="file:#{contextParameters['my-filename']}"/>
</bean>

我的web.xml文件:

<context-param>
    <param-name>my-filename</param-name>
    <param-value></param-value>
</context-param>

我想做以下事情:

  • 首先my-filename的值为空,当用户运行tomcat服务器时,他应该被重定向到配置页面,在那里他可以设置属性文件的位置,我的意思是my-filename值。
  • 点击保存后,我将更新web.xml文件并重新启动tomcat服务器。

所以现在它抛出异常FileNotFoundException而不是继续。你能告诉我如何怀疑文件未找到异常并将用户重定向到配置页面。

1 个答案:

答案 0 :(得分:0)

您应该能够使用指向您需要创建的空文件的默认值:

<bean id="configLocation" class="java.lang.String">
    <constructor-arg type="java.lang.String" value="file:#{contextParameters['my-filename']:./default-empty-file.properties}"/>
</bean>
<bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" ref="configLocation"/>
</bean>

然后检查是否正在使用默认值:

@Autowired
@Qualifier("configLocation")
String configLocation;

final static String EMPTY_CONFIG_LOCATION = "file:./default-empty-file.properties";

@RequestMapping(method = RequestMethod.GET)
public String SomeAction(){
    if (EMPTY_CONFIG_LOCATION.equals(configLocation)) {
        // redirect
        return "redirect:configPage";
    } else {
        // do the normal stuff
    }
}