Я использую Jboss 4, Hibenate, Spring и Treecache.Поскольку у нас разные среды, я хотел бы хранить информацию о кластере в отдельном файле свойств и ссылаться на содержимое из файла treecache xml.Я скопировал treecache-optimistic.xml
в
\jboss-4.2.0.GA\server\Pearl\conf
и настроил свойства в \jboss-4.2.0.GA\server\Pearl\deploy\properties-service.xml
<attribute name="Properties">
cluster.name=CluterName
cluster.ip=228.1.3.1
cluster.port=48866
</attribute>
Я попытался сослаться на него в treecache-optimistic.xml следующим образом:
<attribute name="ClusterName">${cluster.name}</attribute>
После запуска экземпляра я обнаружил через JMX, что имя кластера ${cluster.name}
, а не значение свойства (ClusterName
).Я думал, что это не может найти свойство как-то, но если я изменяю ссылку на
<attribute name="ClusterName">${cluster.name:DefaultValue}</attribute>
, то я получаю следующую ошибку:
Исключительный стартовый фильтр ServletRequestScopeFilter
org.springframework.beans.factory.BeanCreationException
: ошибка при создании компонента с именем 'pearlSessionFactory
', определенным в ресурсе пути к классу [hibernate-spring.xml
]: сбой вызова метода init
;вложенное исключение: org.hibernate.cache.CacheException
: javax.management.MalformedObjectNameException
: недопустимый символ ':' в значении части свойства
Свойства гибернации настраиваются пружиной:
<!-- Database Property -->
<bean id="hibernatePropertiesPearl"
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="properties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
<prop key="hibernate.cache.provider_class">org.hibernate.cache.TreeCacheProvider</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.max_fetch_depth">0</prop>
<prop key="hibernate.jdbc.batch_size">0</prop>
У меня нетзнаю, почему treecache-optimistic.xml
не может обрабатывать файлы свойств :-(
Спасибо Золтан