Вот проблема в двух словах:
<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 в CPMHandlerFactory - это int.Spring не работает, потому что он пытается установить значение «$ {env.audit.bufferSize}» вместо фактического значения из файла свойств.
Теперь, когда я изменяю имя файла свойств или env.audit.bufferSize в этом файле, Spring жалуется, что не может найти свойство env.audit.bufferSize.Это говорит мне, что он МОЖЕТ найти свойство, но вместо того, чтобы установить значение «20», он пытается установить его в «$ {env.audit.bufferSize}».Кто-нибудь может объяснить, почему Spring может делать это и что я могу с этим сделать?
Содержимое файла свойств ниже:
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.Проблема заключалась в том, что я добавил некоторый код, который ссылается на контекст audBeans.xml, который, конечно, не имеет конфигуратор.Я переключил его на ссылку на «основной» контекст, и он прекрасно работает.
Ключом было понимание того, почему значения не могут быть заменены: потому что не было свойства configurer.
Итак,Спасибо!