Spring缓存会为项目类抛出意外错误

我正在尝试使用Spring缓存。 service.getall在控制器内部被调用。 Pagewrapper工具Serializable和OrganizationListProjection是Spring投影。以下是我的代码

@EnableCaching
@EnableFeignClients
@SpringBootApplication
public class SystemApiapplication extends Applicationconfig {
    ...............
}

@service
public class service{
    @Cacheable("getall")
    public PageWrapper<OrganizationListProjection> getall() {....}
}

我跑步时遇到以下异常

2020-01-27 14:50:39.159错误30440 --- [-auto-1-exec-10] oaccC [。[。[/]。[dispatcherServlet]:Servlet [dispatcherServlet]的Servlet.service()路径[]中的]引发了异常[请求处理失败;嵌套的异常是org.springframework.data.r edis.serializer.SerializationException:无法序列化;嵌套的异常是org.springframework.core.serializer.support.SerializationFailedException:无法使用DefaultSerializer序列化对象;嵌套的异常是java.io.NotSerializableException:org.spr 根本原因的ingframework.data.projection.DefaultMethodInvokingMethodInterceptor]

java.io.NotSerializableException:org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor 在java.base / java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1185) 在java.base / java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553) 在java.base / java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510) 在java.base / java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433) 在java.base / java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179) 在java.base / java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1379) 在java.base / java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1175) 在java.base / java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553) 在java.base / java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510) 在java.base / java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433) 在java.base / java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179) 在java.base / java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553) 在java.base / java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510) 在java.base / java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433) 在java.base / java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179) 在java.base / java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553) 在java.base / java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510) 在java.base / java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433) 在java.base / java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179) 在java.base / java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:349) 在java.base / java.util.ArrayList.writeObject(ArrayList.java:791) 在java.base / jdk.internal.reflect.NativeMethodaccessorImpl.invoke0(本机方法) 在java.base / jdk.internal.reflect.NativeMethodaccessorImpl.invoke(NativeMethodaccessorImpl.java:62) 在java.base / jdk.internal.reflect.DelegatingMethodaccessorImpl.invoke(DelegatingMethodaccessorImpl.java:43) 在java.base / java.lang.reflect.Method.invoke(Method.java:564) 在java.base / java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1130) 在java.base / java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1497) 在java.base / java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433) 在java.base / java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179) 在java.base / java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:349) 在java.base / java.util.LinkedHashMap.internalWriteEntries(LinkedHashMap.java:333) 在java.base / java.util.HashMap.writeObject(HashMap.java:1416) 在java.base / jdk.internal.reflect.NativeMethodaccessorImpl.invoke0(本机方法) 在java.base / jdk.internal.reflect.NativeMethodaccessorImpl.invoke(NativeMethodaccessorImpl.java:62) 在java.base / jdk.internal.reflect.DelegatingMethodaccessorImpl.invoke(DelegatingMethodaccessorImpl.java:43) 在java.base / java.lang.reflect.Method.invoke(Method.java:564) 在java.base / java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1130) 在java.base / java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1497) 在java.base / java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433) 在java.base / java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179) 在java.base / java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553) 在java.base / java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510) 在java.base / java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433) 在java.base / java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179) 在java.base / java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:349) 在org.springframework.core.serializer.DefaultSerializer.serialize(DefaultSerializer.java:46) 在org.springframework.core.serializer.support.SerializingConverter.convert(SerializingConverter.java:63) 在org.springframework.core.serializer.support.SerializingConverter.convert(SerializingConverter.java:35) 在org.springframework.data.redis.serializer.JdkSerializationRedisSerializer.serialize(JdkSerializationRedisSerializer.java:94) 在org.springframework.data.redis.serializer.DefaultRedisElementWriter.write(DefaultRedisElementWriter.java:43) 在org.springframework.data.redis.serializer.RedisSerializationContext $ SerializationPair.write(RedisSerializationContext.java:219) 在org.springframework.data.redis.cache.RedisCache.serializeCacheValue(RedisCache.java:238) 在org.springframework.data.redis.cache.RedisCache.put(RedisCache.java:144) 在org.springframework.cache.interceptor.AbstractCacheInvoker.doPut(AbstractCacheInvoker.java:87) 在org.springframework.cache.interceptor.CacheAspectSupport $ CachePutRequest.apply(CacheAspectSupport.java:783) 在org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:400) 在org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:316) 在org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:61) 在org.springframework.aop.framework.ReflectiveMethodinvocation.proceed(ReflectiveMethodinvocation.java:185) 在org.springframework.aop.framework.CglibAopProxy $ DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688) 在com.microservices.service.OrganizationService $$ EnhancerBySpringCGLIB $$ bac57777.getallOrganization() 在com.microservices.controller.OrganizationRestController.getallOrganization(OrganizationRestController.java:78) 在java.base / jdk.internal.reflect.NativeMethodaccessorImpl.invoke0(本机方法) 在java.base / jdk.internal.reflect.NativeMethodaccessorImpl.invoke(NativeMethodaccessorImpl.java:62) 在java.base / jdk.internal.reflect.DelegatingMethodaccessorImpl.invoke(DelegatingMethodaccessorImpl.java:43) 在java.base / java.lang.reflect.Method.invoke(Method.java:564) 在com.netflix.hystrix.contrib.javanica.command.MethodExecutionaction.execute(MethodExecutionaction.java:116) 在com.netflix.hystrix.contrib.javanica.command.MethodExecutionaction.executeWithArgs(MethodExecutionaction.java:93) 在com.netflix.hystrix.contrib.javanica.command.MethodExecutionaction.execute(MethodExecutionaction.java:78) 在com.netflix.hystrix.contrib.javanica.command.GenericCommand $ 1.execute(GenericCommand.java:48) 在com.netflix.hystrix.contrib.javanica.command.AbstractHystrixCommand.process(AbstractHystrixCommand.java:145) 在com.netflix.hystrix.contrib.javanica.command.GenericCommand.run(GenericCommand.java:45) 在com.netflix.hystrix.HystrixCommand $ 2.call(HystrixCommand.java:302) 在com.netflix.hystrix.HystrixCommand $ 2.call(HystrixCommand.java:298) 在rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:46) 在rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:35) 在rx.internal.operators.OnSubscribelift.call(OnSubscribelift.java:48) 在rx.internal.operators.OnSubscribelift.call(OnSubscribelift.java:30) 在rx.internal.operators.OnSubscribelift.call(OnSubscribelift.java:48) 在rx.internal.operators.OnSubscribelift.call(OnSubscribelift.java:30) 在rx.internal.operators.OnSubscribelift.call(OnSubscribelift.java:48) 在rx.internal.operators.OnSubscribelift.call(OnSubscribelift.java:30) 在rx.Observable.unsafeSubscribe(Observable.java:10327) 在rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:51) 在rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:35) 在rx.Observable.unsafeSubscribe(Observable.java:10327) 在rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41) 在rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30) 在rx.internal.operators.OnSubscribelift.call(OnSubscribelift.java:48) 在rx.internal.operators.OnSubscribelift.call(OnSubscribelift.java:30) 在rx.Observable.unsafeSubscribe(Observable.java:10327) 在rx.internal.operators.OperatorSubscribeon $ SubscribeonSubscriber.call(OperatorSubscribeon.java:100) 在com.netflix.hystrix.strategy.concurrency.HystrixContexScheduleraction $ 1.call(HystrixContexScheduleraction.java:56) 在com.netflix.hystrix.strategy.concurrency.HystrixContexScheduleraction $ 1.call(HystrixContexScheduleraction.java:47) 在org.springframework.security.concurrent.DelegatingSecurityContextCallable.call(DelegatingSecurityContextCallable.java:87) 在com.microservices.hystrix.RequestAttributeAwareCallableWrapper $ RequestAttributeAwareCallable.call(RequestAttributeAwareCallableWrapper.java:53) 在com.netflix.hystrix.strategy.concurrency.HystrixContexScheduleraction.call(HystrixContexScheduleraction.java:69) 在rx.internal.schedulers.Scheduledaction.run(Scheduledaction.java:55) 在java.base / java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:514) 在java.base / java.util.concurrent.Futuretask.run(Futuretask.java:264) 在java.base / java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135) 在java.base / java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:635) 在java.base / java.lang.Thread.run(Thread.java:844)

xuguirong 回答:Spring缓存会为项目类抛出意外错误

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2702055.html

大家都在问