在属性文件中存储treecache集群属性

时间:2010-09-09 13:47:08

标签: java spring jboss jboss-cache

我正在使用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”的bean时出错:init方法的调用失败;嵌套异常为org.hibernate.cache.CacheExceptionjavax.management.MalformedObjectNameException:属性值部分中的字符':'无效

hibernate属性由spring配置:

 <!-- 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无法处理属性文件:-(

由于 佐尔坦

1 个答案:

答案 0 :(得分:1)

如何通过Spring管理所有配置?我指的是@skaffman here建议的方法。由于可以在Spring XML中声明单独的配置属性,因此您可以像使用Hibernate配置那样使用占位符。