2010-08-13 40 views
0

這裏的果殼中的問題:在CPMHandlerFactory爲什麼Spring會試圖使用屬性變量引用字符串而不是值?

<bean id="handlerFactory" class="com.westfieldgrp.audit.jdklogging.cpm.CPMHandlerFactory"> 
    <property name="schemaName" value="${env.audit.databaseSchema}" /> 
    <property name="bufferSize" value="${env.audit.bufferSize}" /> 
    <property name="threaded" value="${env.audit.threadedAuditHandler}" /> 
    <property name="dataSourceSelector" ref="dataSourceSelector" /> 
</bean> 

BUFFERSIZE是一個int。 Spring失敗,因爲它試圖將值設置爲'$ {env.audit.bufferSize}',而不是來自屬性文件的實際值。

現在,當我更改文件中的屬性文件或env.audit.bufferSize的名稱時,Spring會抱怨它無法找到屬性'env.audit.bufferSize'。這對我說,它可以找到屬性,但不是將值設置爲'20',而是試圖將其設置爲'$ {env.audit.bufferSize}'。任何人都可以解釋爲什麼春天可能會這樣做,我可以做些什麼呢?

屬性的內容如下文件:

env.audit.databaseSchema=TDB2DATA 
env.audit.dataSourceName=java:comp/env/AuditDataSourceAlias 
env.audit.bufferSize=20 
env.audit.threadedAuditHandler=true 

謝謝, 彼得

編輯:

發現的感謝以下Jamestastic問題。下面是它是: 我們有一個「主」方面的文件,看起來像這樣:

<import resource="environmentBeans.xml" /> 
<import resource="serviceBeans.xml" /> 
<import resource="auditBeans.xml" /> 

的「environmentBeans.xml」有PropertyPlaceholderConfigurer在裏面。問題是,我添加了一些引用'auditBeans.xml'上下文的代碼,當然沒有有配置器。我將它轉換爲引用「主」上下文,並且它工作得很好。

關鍵是瞭解爲什麼值不會被取代:因爲沒有屬性配置器。

所以,謝謝!

+0

清除屬性末尾的任何空格,它可能會導致它。 – 2010-08-13 17:13:19

+0

是的,好主意,並已檢查。謝謝! – Risser 2010-08-13 17:20:16

回答

1

您是否記得在您的Spring上下文中添加<context:property-placeholder />PropertyPlaceholderConfigurer的bean定義?

+0

錯誤!就是這樣。八九不離十。但它絕對讓我走上正軌。我將用細節編輯主要條目。 – Risser 2010-08-13 18:27:22

相關問題