我有一个方法:
@Cacheable(key = "#jobId")
public Optional<JobInfo> getJobById(String jobId) {
log.info("Querying for job " + jobId);
counterService.increment("queryJobById");
Job job = jobsRepository.findOne(jobId);
if (job != null) {
return Optional.of(createDTOFromJob(job));
}
return Optional.empty();
}
Run Code Online (Sandbox Code Playgroud)
当我尝试检索缓存的项目时,我收到以下异常:
2016-01-18 00:01:10 ERROR [trace =,span =] http-nio-8021-exec-2 [dispatcherServlet]:182 - Servlet [dispatcherServlet]的Servlet.service()在路径[]的上下文中抛出异常[请求处理失败; 嵌套异常是org.springframework.data.redis.serializer.SerializationException:无法序列化; 嵌套异常是org.springframework.core.serializer.support.SerializationFailedException:无法使用DefaultSerializer序列化对象; 嵌套异常是java.lang.IllegalArgumentException:DefaultSerializer需要一个Serializable有效负载,但是收到一个类型为[java.util.Optional]的对象,其根本原因是java.lang.IllegalArgumentException:DefaultSerializer需要一个Serializable有效负载但是收到了一个类型为[java的对象] .util.Optional]