首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有在生产中绑定使用@play.cache.NamedCache注释的@play.cache.NamedCache(value=session-cache)的实现。

没有在生产中绑定使用@play.cache.NamedCache注释的@play.cache.NamedCache(value=session-cache)的实现。
EN

Stack Overflow用户
提问于 2015-09-09 05:46:51
回答 1查看 1.4K关注 0票数 2

我使用的是@NamedCache注释,在开发模式下使用的是激活器run,没有任何问题。除了默认缓存之外,我还在文件中指定了名为application.conf play的缓存为play.cache.bindCaches = ["user-cache", "session-cache"]。这很好,没有任何问题,因为我已经检查了如何使用CacheManager获得命名缓存。

然而,在生产模式下。我正在使用activator dist命令。然后,解压缩创建在目标\通用\项目名称address.After中创建的快照,我正在使用java -Dhttp.port=9000 -Dconfig.resource=application.conf -cp "../lib/*;../conf" play.core.server.ProdServerStart命令在生产模式下启动应用程序。

当我在生产中使用@NamedCache注释时,它会产生错误:

代码语言:javascript
复制
1) No implementation for play.cache.CacheApi annotated with @play.cache.NamedCache(value=session-cache) was bound.
while locating play.cache.CacheApi annotated with @play.cache.NamedCache(value=session-cache)
for field at services.space.SessionSpace.cache(SessionSpace.java:19)
while locating services.space.SessionSpace
for field at services.SecurityService.sessionSpace(SecurityService.java:21)
while locating services.SecurityService
for field at common.Response.securityService(Response.java:17)
while locating common.Response
for field at controllers.BaseController.response(BaseController.java:53)
while locating controllers.Application
for parameter 2 at router.Routes.<init>(Routes.scala:60)
while locating router.Routes
while locating play.api.inject.RoutesProvider
while locating play.api.routing.Router

获得此错误后,我删除了NamedCache,并使用了默认缓存。当我这么做的时候,一切都很好。同样,在dev模式下,NamedCache按预期工作。

EN

回答 1

Stack Overflow用户

发布于 2016-01-15 03:40:54

我也遇到了类似的问题。但在我的例子中,我注入了在我的一个项目依赖项中使用的缓存api (这也是由我开发的)。我了解到,错误是项目依赖项中的任何application.conf都将被覆盖。即conf/appliaction.conf将覆盖所有其他应用程序。如果您使用的是在游戏中开发的依赖项,则为conf。解决方案:必须在依赖项中将所有application.confs命名为reference.conf。您是否在依赖项中使用缓存?

干杯,玛尼。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32471761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档