我无法将文件路径加载到我的应用程序中。任何人都可以帮助我。
这是spring xml config:
<context:property-placeholder location="file:${globalproplocation}"
ignore-unresolvable="true" ignore-resource-not-found="true" order="-1" />
我已将此添加到catalina.sh下的JAVA_OPTS中,如下所示:
JAVA_OPTS="-XX:MaxPermSize=4096m -XX:PermSize=1024m -Dglobalproplocation=/Users/admin/properties/temp.properties"
但是有些怎么没被拿起来,这是我的tomcat日志。
<Loading properties file from ServletContext resource [/${globalproplocation}]>
2016-05-07 02:52:24,089 WARN [org.springframework.beans.factory.config.PropertyPlaceholderConfigurer] -
<Could not load properties from ServletContext resource [/${globalproplocation}]:
Could not open ServletContext resource [/${globalproplocation}]>
我在这里做错了什么?
答案 0 :(得分:0)
问题是当Spring Context启动并在配置文件中看到占位符$ {globalproplocation}时,它会尝试加载这样的文件路径:$ {globalproplocation}。问题是当你像-Dglobalproplocation=/Users/admin/properties/temp.properties
那样传递一个paramiter时,xml不会被修改,并且上下文不再尝试加载一个不存在的文件。为了解决这个问题,您可以使用maven和资源processiong插件,配置如下。
<build>
<properties>
<globalproplocation>/Users/admin/properties/temp.properties</globalproplocation>
</properties>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<!-- Facilitates downloading source and javadoc in Eclipse -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.3</version>
<configuration>
<!-- specify UTF-8, ISO-8859-1 or any other file encoding -->
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
然后你可以执行命令mvn clean package,并且构建结果将使xml文件被转换,并且palceholder将被替换为正确的路径。
我希望这对你有帮助。
答案 1 :(得分:0)
spring xml config:
`<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="propname">
<value>test.properties</value>
</property>
</bean>`
备用选项使用classpath
<bean name="propertyPlaceholder" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="propname">
<value>classpath:test.properties</value>
</property>
</bean>