У меня есть SOAP веб-сервиса следующим образом: -Как настроить EHCache с CXF в Mule
<spring:bean id="cacheManager" name="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"/>
<spring:bean id="cache" name="cache" class="org.springframework.cache.ehcache.EhCacheFactoryBean">
<spring:property name="cacheManager" ref="cacheManager"/>
<spring:property name="cacheName" value="dbCache"/>
<spring:property name="maxElementsInMemory" value="10000"/>
<spring:property name="eternal" value="false"/>
<spring:property name="timeToIdle" value="${timeToIdle}"/>
<spring:property name="timeToLive" value="${timeToLive}"/>
<spring:property name="overflowToDisk" value="true"/>
<spring:property name="maxElementsOnDisk" value="10000000"/>
<spring:property name="diskPersistent" value="false"/>
<spring:property name="diskExpiryThreadIntervalSeconds" value="5"/>
<spring:property name="memoryStoreEvictionPolicy" value="LRU"/>
<!-- Cache Expiry -->
</spring:bean>
</spring:beans>
<ee:object-store-caching-strategy name="cachingStrategy" doc:name="cachingStrategy">
<custom-object-store class="com.anirban.EHCatche.EhcacheObjectStore">
<spring:property name="cache" ref="cache"/>
</custom-object-store>
</ee:object-store-caching-strategy>
<!-- Catch Strategy ends -->
<flow name="ServiceFlow" doc:name="ServiceFlow">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8082" path="mainData" doc:name="HTTP" />
<ee:cache doc:name="Cache" cachingStrategy-ref="cachingStrategy">
<cxf:jaxws-service serviceClass="com.test.services.schema.maindata.v1.MainData" doc:name="SOAP"/>
<component class="com.test.services.schema.maindata.v1.Impl.MainDataImpl" doc:name="JavaMain_ServiceImpl"/>
</ee:cache>
</flow>
Теперь, как вы можете видеть .. Я завернул cxf:jaxws-service
и component class
под ee:cache
блок ..
Webservice извлекает набор данных из базы данных
Моей главной целью является то, что если я запускаю веб-сервис, он будет извлекать данные из БД с первого раза, а затем для того же запроса он будет извлекать из кеша в течение определенного времени ... В tween, если я запускаю службу с другим запросом, она снова будет извлекать данные из БД в первый раз для этого запроса, а затем извлекать из кеша для последующего же запроса.
Он будет хранить данные в кеше для конкретного время ..
Теперь проблема заключается в том, что я запускаю службу .. она всегда извлекает данные из БД и не хранит данные в кеше для одного и того же запроса. Каждый раз, когда я нахожусь в службе, он попадает в базу данных напрямую и данные не извлекаются из кеша для одного и того же запроса. Пожалуйста, помогите .. как настроить кеш с CXF в Mule
спасибо David .. . Это сработало –