Adding a directory to tomcat classpath and read the property file in spring

笑着哭i 提交于 2019-12-31 11:47:41

问题


I am trying to read the test1.properties file which is located at an external folder.

here is my spring config file:

<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>

if I place the test1.properties in the tomcat7/lib folder, I am able to read it. However, I want to place it in a different directory as tomcat7/env/test1.properties

I have added the path to the the conf/catalina.properties:

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

This its not working, please help


solution: Ok.. finally fixed it.. I had been doing it correctly this whole time.. it was my IDE which caused the problem. The IDE was not picking up the changes in the catalina.properties file. I had to delete the server config in my IDE and re configure it.

these links were helpful in general:

  • Adding a directory to tomcat classpath

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


回答1:


Ok.. finally fixed it.. I had been doing it correctly this whole time.. it was my IDE which caused the problem. The IDE was not picking up the changes in the catalina.properties file. I had to delete the server config in my IDE and re configure it.

these links were helpful in general:

Adding a directory to tomcat classpath

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




回答2:


Use setenv.sh in the bin directory. If the file doesn't exist, create it. To add something to the classpath use the following syntax:

CLASSPATH=/yourdir/

For windows: setenv.bat

Solution: creating the setenv.bat file under tomcat bin folder helped me in WINDOWS.




回答3:


If your intention to keep file outside the war or ear , so that you can update it without compling and creating war again. just editing the file and restarting the server. Keep it in any external folder , even outside server and give absolute path in 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>**file:/someexteranal/dir/test1.properties**</value>
    </list>
</property>

Best thing , you can give this / path with root in Unix/linux and same will work in windows, just need to keep file in directory where your server is installed. Like your tomcat in D drive , then keep it in D:\someexternal\dir and above code will work fine there too



来源:https://stackoverflow.com/questions/17670826/adding-a-directory-to-tomcat-classpath-and-read-the-property-file-in-spring

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!