Я пытаюсь настроить Hazelcast (3.5.4) на работу как кеш второго уровня для Hibernate (4.2.8) и как кэш Spring (3.1.2).Конфигурация Hazelcast с пружиной
Я добавил dependecies:
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast-hibernate4</artifactId>
<version>${hazelcast-version}</version>
</dependency>
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast</artifactId>
<version>${hazelcast-version}</version>
</dependency>
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast-spring</artifactId>
<version>${hazelcast-version}</version>
</dependency>
Использование documentation в качестве ссылки я настроил мой SessionFactory следующим образом:
<hz:hibernate-region-factory id="regionFactory" instance-ref="instance"
mode="LOCAL" />
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.somePackage" />
<property name="cacheRegionFactory" ref="regionFactory" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.database">ORACLE</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
<!--enable 2nd level cache-->
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.use_query_cache">false</prop>
</props>
</property>
</bean>
К сожалению, это не работает, потому что я получаю следующее исключение:
Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'cacheRegionFactory' of bean class [org.springframework.orm.hibernate4.LocalSessionFactoryBean]: Bean property 'cacheRegionFactory' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
Я понимаю, что документ ионный пример использует Hibernate 3.
Какова будет подходящая конфигурация для Hibernate 4?
Это мой hazelcast экземпляр конфигурационный файл:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:hz="http://www.hazelcast.com/schema/spring"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.hazelcast.com/schema/spring
http://www.hazelcast.com/schema/spring/hazelcast-spring-3.5.xsd">
<context:annotation-config />
<hz:hazelcast id="instance">
<hz:config>
<hz:spring-aware />
<hz:group name="dev" password="password"/>
<hz:network port="5701" port-auto-increment="true">
<hz:join>
<hz:multicast enabled="true"
multicast-group="224.2.2.3"
multicast-port="54327"/>
</hz:join>
</hz:network>
<hz:map name="default"
in-memory-format="BINARY"
backup-count="1"
async-backup-count="0"
time-to-live-seconds="0"
max-idle-seconds="0"
eviction-policy="NONE"
max-size="0"
max-size-policy="PER_NODE"
eviction-percentage="30"
min-eviction-check-millis="100"
merge-policy="com.hazelcast.map.merge.PutIfAbsentMapMergePolicy"/>
</hz:config>
</hz:hazelcast>
Спасибо!
Позже редактировать
Использование Ибрахим Gurses предложение кажется исправить ошибку неопределенного свойства, но возникла новая проблема:
Если я называю мой hazelcast конфигурационный файл hazelcast.xml я получаю java.lang.IllegalStateException: Failed to load ApplicationContext
вызванное:
Caused by: com.hazelcast.config.InvalidConfigurationException: Your xsd schema couldn't be load
Если я даю ему другое имя, например, hazelcast-config.xml I g эт же исключение, на этот раз вызван следующими причинами:
Caused by: java.util.concurrent.RejectedExecutionException: Task java.[email protected]2cd62003 rejected from [email protected][Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 7]
импортировать (<import resource="" />
) мой hazelcast конфигурационного файла перед SessionFactory конфигурационного файла.
При использовании другого имени для hazelcast конфигурации, как hazelcast-config.xml, проблема, кажется, что hazelcast также загружаются hazelcast-DEFAULT.XML и пытается запустить 2 экземпляра. – Bob