2015-12-11 1 views
0

Я использую один weblogic, на котором размещено два веб-приложения. Я использую пружинный контейнер и ниже моей конфигурации EhcacheСовместное использование Ehcache через веб-приложения на одном веб-сервере?

<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager"> 
    <property name="cacheManager" ref="ehcache"/> 
</bean> 

<bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" scope="singleton"> 
    <property name="configLocation" value="classpath:ehcache.xml" /> 
    <property name="shared" value="true" /> 
</bean> 

Как я упоминал общий атрибут, как верно, я ожидал, что будет единый диспетчер кэша и один кэш. Но я могу видеть два элемента customerCache в памяти отдельно для каждого приложения. Как я могу сделать это по-настоящему singleton на jvm с весной в приложении?

, например

<cache name="customerCache" maxElementsInMemory="1000" eternal="false" overflowToDisk="false" memoryStoreEvictionPolicy="LRU" /> 

ответ

0

Для того, чтобы достичь этого, вам придется делить общую Ehcache CacheManager между вашими двумя приложениями.

Для Ehcache это означает наличие CacheManager, загруженного одним и тем же загрузчиком классов в обоих приложениях.

Пути достижения этой цели являются:

  • Найти способ поделиться контекст Spring между вашими двумя приложениями (см это question) или
  • Move Ehcache библиотеку общей Lib системы, которая даст вам и затем убедитесь, что его инициализация правильно обрабатывается либо с помощью webapps (но не для обоих)

 Смежные вопросы

  • Нет связанных вопросов^_^