Spring boot 在Openshift上部署带有Ehcache的springboot应用程序

Spring boot 在Openshift上部署带有Ehcache的springboot应用程序,spring-boot,caching,openshift,Spring Boot,Caching,Openshift,我有一个springboot应用程序,它使用Ehcache实现缓存。如果我在本地运行应用程序,则缓存工作正常,即Ehcache注册、可缓存方法的形成等。现在我必须在openshift上部署应用程序。我将应用程序构建成一个docker映像,并在openshift上运行该docker映像。我发现缓存在Openshift上不起作用。我看不到显示缓存注册的日志,而是出现以下错误: 原因:java.lang.IllegalArgumentException:找不到生成器[public java.util.

我有一个springboot应用程序,它使用Ehcache实现缓存。如果我在本地运行应用程序,则缓存工作正常,即Ehcache注册、可缓存方法的形成等。现在我必须在openshift上部署应用程序。我将应用程序构建成一个docker映像,并在openshift上运行该docker映像。我发现缓存在Openshift上不起作用。我看不到显示缓存注册的日志,而是出现以下错误:

原因:java.lang.IllegalArgumentException:找不到生成器[public java.util.ArrayList com.optum.kafka.services.CodeListService.getRestrictedAddress()]的名为“getRestrictedAddress”的缓存=[getRestrictedAddress]| key=''getRestrictedAddressKey''keyGenerator=''cacheManager=''cacheResolver=''条件=''除非=''同步=''假'

这里
getRestrictedAddress
是缓存从数据库中提取数据的方法的结果的缓存的名称

我已完成以下步骤以在本地启用缓存:

  • 将ehcache依赖项添加到pom
  • 在application.properties中添加一个简单的ehcache xml文件及其类路径
  • 在需要缓存的方法上方添加@Cacheable符号
  • 在缓存配置文件中添加@EnableCaching

  • 有人可以帮助我如何在Openshift平台上启用此缓存吗?我需要在应用程序中添加任何其他配置吗?

    您使用什么存储选项来进行ehcache?另外,您是以root用户身份还是以默认openshift用户身份运行容器?现在我正在使用堆和堆外资源进行存储。容器正在openshift上以具有某些权限的新用户身份运行。希望这能回答你的问题!看起来您在创建缓存时遇到了问题。可能是权限问题,ehcache无法将数据写入磁盘。感谢您的输入,但这是我方的错误。我没有在open shift的配置映射中正确配置此属性“spring.cache.jcache.config=classpath:ehcache.xml”。在open shift或应用程序中不需要添加额外的配置来启用open shift的缓存。