gpt4 book ai didi

java - 缓存刷新显示带有@cacheable 注释的错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:44:36 27 4
gpt4 key购买 nike

有人可以帮我调试这个错误吗?

2015-03-11 14:59:03,844 [cachename.data] ERROR n.s.e.store.disk.DiskStorageFactory - Disk Write of -351643849550012 failed: java.io.NotSerializableException: com.googlecode.ehcache.annotations.RefreshableCacheEntry at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164) ~[na:1.6.0_45] at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) ~[na:1.6.0_45] at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:422) ~[na:1.6.0_45] at net.sf.ehcache.Element.writeObject(Element.java:867) ~[ehcache-2.8.1.jar:2.8.1] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_45] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ~[na:1.6.0_45] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_45] at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_45] at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:940) ~[na:1.6.0_45] at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469) ~[na:1.6.0_45] at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400) ~[na:1.6.0_45] at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) ~[na:1.6.0_45] at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330) ~[na:1.6.0_45] at net.sf.ehcache.util.MemoryEfficientByteArrayOutputStream.serialize(MemoryEfficientByteArrayOutputStream.java:97) ~[ehcache-2.8.1.jar:2.8.1] at net.sf.ehcache.store.disk.DiskStorageFactory.serializeElement(DiskStorageFactory.java:399) ~[ehcache-2.8.1.jar:2.8.1] at net.sf.ehcache.store.disk.DiskStorageFactory.write(DiskStorageFactory.java:381) ~[ehcache-2.8.1.jar:2.8.1] at net.sf.ehcache.store.disk.DiskStorageFactory$DiskWriteTask.call(DiskStorageFactory.java:473) ~[ehcache-2.8.1.jar:2.8.1] at net.sf.ehcache.store.disk.DiskStorageFactory$PersistentDiskWriteTask.call(DiskStorageFactory.java:1067) [ehcache-2.8.1.jar:2.8.1] at net.sf.ehcache.store.disk.DiskStorageFactory$PersistentDiskWriteTask.call(DiskStorageFactory.java:1051) [ehcache-2.8.1.jar:2.8.1] at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) [na:1.6.0_45] at java.util.concurrent.FutureTask.run(FutureTask.java:138) [na:1.6.0_45] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98) [na:1.6.0_45] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206) [na:1.6.0_45] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) [na:1.6.0_45] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) [na:1.6.0_45] at java.lang.Thread.run(Thread.java:662) [na:1.6.0_45]

我正在使用带有@cacheable 注释的缓存刷新:

CacheFetchDao.java

@Cacheable(cacheName = "cachename",refreshInterval=10000, decoratedCacheType= DecoratedCacheType.REFRESHING_SELF_POPULATING_CACHE)
//@Cacheable( value = "cachename", key = "#key")
public List<Account> getAccounts(String key) {
//call to database
return res;
}

CachefetchEndpoint.java

    @GET
@Path("/Accounts")
@WebMethod(operationName = "Accounts")
public List<Account> Accounts() {
return dao.getAccounts("accounts");
}

ehcache.xml

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ehcache.xsd"
updateCheck="true"
monitoring="autodetect"
dynamicConfig="true">

<diskStore path="java.io.tmpdir"/>

<defaultCache
maxElementsInMemory="100"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
diskSpoolBufferSizeMB="30"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"/>

<!-- The cache configuration for our Currency cache -->
<cache name="cachename"
maxElementsInMemory="3000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
<persistence strategy="localTempSwap"/>
</cache>
</ehcache>

和config.xml

 <ehcache:annotation-driven cache-manager="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" >
<property name="configLocation" value="ehcache.xml" />
</bean>

最佳答案

我希望您的帐户类型实现可序列化接口(interface)?你也可以发布吗?

关于java - 缓存刷新显示带有@cacheable 注释的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28983035/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com