我想在启动Jboss 4.2时读取外部属性文件。我想将它添加到类路径以从WAR文件中读取它。我已经看到了使用模块的Jboss 6的不同解决方案,但我还没有看到任何与JBoss 4.2相关的内容。
我在'jboss-service.xml'中包含了以下代码:
<!-- Bean for reading properties -->
<mbean code="org.jboss.varia.property.SystemPropertiesService"
name="jboss.util:type=Service,name=SystemProperties">
<!-- Load properties from each of the given comma separated URLs -->
<attribute name="URLList">
./conf/path.tmview.properties
</attribute>
</mbean>
在这个文件中我定义了属性:
property-placeholder filepath=/var/tmview_props/tmview/tmview.properties
此属性用于以下bean定义
<bean id="tmviewConfigurerLocation" class="org.springframework.core.io.FileSystemResource">
<constructor-arg value="${property-placeholder-filepath}" />
</bean>
在applicationContext.xml中。当我启动jboss时,会读取属性文件
15:45:29,939 INFO [SystemPropertiesService] Loaded system properties
from: file:/D:/devel/projects/tmview/deployment/jboss-
...ver/tmview/conf/path.tmview.properties
因此,该属性被读取,但我一直获得以下异常
2015-03-24 15:45:39,219 ERROR
[org.springframework.web.context.ContextLoader] Context
initialization failed
org.springframework.beans.factory.BeanInitializationException: Could
not load properties; nested exception is
java.io.FileNotFoundException: ${property-placeholder-filepath} (The
system cannot find the file specified)
at
org.springframework.beans.factory.config.PropertyResourceConfigurer.
postProcessBeanFactory(PropertyResourceConfigurer.java:78)
有没有特殊的方法来读取spring bean中的属性?
答案 0 :(得分:0)
在jboss 4中,您可以删除<jboss_home>/server/<instance>/conf
目录中的属性文件,并且可以从类路径中获取它们。
另一种可能性是将自定义目录添加到类路径中,为此,请参阅Adding second conf folder to JBoss 5.1.0
答案 1 :(得分:0)
好的。最后,我解决了这个问题。似乎问题在于从application-context.xml读取。
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>file:${tmview.conf.variables}</value>
</property>
</bean>
我必须添加一个属性占位符读者。关于jboss,你可以从conf / jboss-service.xml或deploy / properties-receive.xml中读取参数文件,但是从第二个读取它似乎更合适。