我有一个工作的spring 3应用程序,在迁移到4.1.0.RELEASE之后开始引起问题。下面的配置停止工作:
<jee:jndi-lookup id="dit_properties_path" jndi-name="dit_properties_path" resource-ref="true" />
<util:properties id="systemProperties" location="classpath:system.properties" />
<util:properties id="serverProperties" location="#{dit_properties_path}"/>
迁移后,似乎spring无法解析spEL #{dit_properties_path}
,并显示以下错误:
[PropertiesFactoryBean] [INFO]: Loading properties file from ServletContext resource [/#{dit_properties_path}]
[...]is java.io.FileNotFoundException: Could not open ServletContext resource [/#{dit_properties_path}]
Jndi资源的类型为java.lang.String
,并指向本地FS(C:\ someFile.properties)。
这是资源/服务器和context /的tomcat定义:
<Environment name="dit_properties_path" value="file:C:\someFile.properties"
type="java.lang.String" override="true"/>
和
<ResourceLink name="dit_properties_path"
type="java.lang.String"
global="dit_properties_path" />
有谁知道如何解决这个问题?
我的应用程序中有几个属性文件,通常由#{propertyFileId['key']}
访问,并且必须从jndi资源路径动态加载。
答案 0 :(得分:0)
更改自:
<util:properties id="serverProperties" location="#{dit_properties_path}"/>
为:
<util:properties id="serverProperties" location="${dit_properties_path}"/>
解决了这个问题。但是,无法弄清楚为什么给定的表达式不能用哈希符号。