将目录添加到tomcat类路径并在spring中读取属性文件

时间:2013-07-16 07:45:42

标签: spring-mvc tomcat7

我正在尝试阅读位于外部文件夹的test1.properties文件。

这是我的spring配置文件:

<bean id="propertyConfigurer3" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="ignoreUnresolvablePlaceholders" value="true"/>
    <property name="locations">
        <list>
            <value>classpath:test.properties</value>
            <value>classpath:test1.properties</value>
        </list>
    </property>
</bean>

如果我将test1.properties放在tomcat7/lib文件夹中,我就能阅读它。 但是,我想将其放在与tomcat7/env/test1.properties

不同的目录中

我添加了conf/catalina.properties的路径:

common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,${catalina.home}/env

这不起作用,请帮忙


溶液: 好的..终于解决了..我一直都在正确地做这件事..这是我的IDE造成的问题。 IDE未获取catalina.properties文件中的更改。我不得不在IDE中删除服务器配置并重新配置它。

这些链接一般都很有用:

3 个答案:

答案 0 :(得分:3)

在bin目录中使用setenv.sh。如果文件不存在,请创建它。 要向类路径添加内容,请使用以下语法:

CLASSPATH=/yourdir/

对于windows:setenv.bat

解决方案:在tomcat bin文件夹下创建setenv.bat文件帮助我在WINDOWS中。

答案 1 :(得分:3)

好的..终于解决了..我一直都在正确地做这件事..这是我的IDE造成的问题。 IDE没有获取catalina.properties文件中的更改。我不得不在IDE中删除服务器配置并重新配置它。

这些链接一般都很有用:

将目录添加到tomcat类路径

http://www.mulesoft.com/tomcat-classpath#solutions

答案 2 :(得分:0)

如果您打算将文件保留在战争或耳朵之外,以便您可以更新它而无需再次编译和创建战争。只需编辑文件并重新启动服务器。将它保存在任何外部文件夹中,甚至是外部服务器,并在春天给出绝对路径。

<bean id="propertyConfigurer3" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="ignoreUnresolvablePlaceholders" value="true"/>
<property name="locations">
    <list>
        <value>classpath:test.properties</value>
        <value>**file:/someexteranal/dir/test1.properties**</value>
    </list>
</property>

最好的事情是,您可以在Unix / linux中使用root / this路径,同样可以在Windows中使用,只需要将文件保存在安装服务器的目录中。 就像你在D驱动器中的tomcat一样,然后将它保存在D:\ someexternal \ dir和上面的代码也可以正常工作