首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >野生蝇11 -无穷大的本地缓存没有注册。

野生蝇11 -无穷大的本地缓存没有注册。
EN

Stack Overflow用户
提问于 2018-06-08 05:22:21
回答 1查看 743关注 0票数 1

我在通配符11中使用本地缓存。在访问缓存时,我得到错误>

org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:153) /javax.naming.NameNotFoundException/javax.naming.NameNotFoundException/SearchContainer例外是java.lang.IllegalStateException,在org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:83),在org.jboss.as.naming.NamingContext.lookup(NamingContext.java:207),在org.jboss.as.naming.NamingContext.lookup(NamingContext.java:184),在org.jboss.as.naming。InitialContext$DefaultInitialContext.lookup(InitialContext.java:239) at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:193) at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:189) at : java.lang.IllegalStateException at org.jboss.msc.value.InjectedValue.getValue(InjectedValue.java:47) at org.jboss.as.naming.service.BinderService.getValue(BinderService.java:142) at org.jboss.as.naming.service.BinderService.getValue(BinderService.java:46) at org.jboss.msc.service.ServiceControllerImpl.getValue(ServiceControllerImpl.java:1158) at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:131) . 174

独立配置如下,

代码语言:javascript
复制
<cache-container name="SearchContainer" default-cache="TwoColumnSearchCache" jndi-name="java:jboss/infinispan/container/SearchContainer">
            <local-cache name="TwoColumnSearchCache">
                <eviction strategy="LRU" max-entries="-1"/>
                <expiration lifespan="60000" max-idle="60000"/>
            </local-cache>
        </cache-container>

在托管bean中,我尝试了两种方法,这两种方法都不能在通配符11中工作,但是在wildfly 10中,它在相同的代码中工作得很好。

方法1:

代码语言:javascript
复制
CacheContainer searchContainer = (CacheContainer) new InitialContext().lookup("java:jboss/infinispan/container/SearchContainer");
Cache<String, List<Map<String, String>>> twoColumnSearchCache = searchContainer.getCache("TwoColumnSearchCache");

方法2:

代码语言:javascript
复制
@Resource(lookup="java:jboss/infinispan/container/SearchContainer/TwoColumnSearchCache")
Cache<String, List<Map<String, String>>> twoColumnSearchCache ;

如何在通配符11中使用缓存?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-06-11 16:48:07

在WF11中,缓存配置服务是按需安装的,因此使用缓存管理器的资源引用(例如@Resource、resource、resource)不足以确保其缓存配置被安装。您需要为缓存配置添加一个额外的@resource/resource ref/resource ref,或者(更好的)直接使用缓存本身的资源-env-ref来查找缓存。例如:

部署描述符:

代码语言:javascript
复制
<resource-env-ref>
    <resource-env-ref-name>TwoColumnSearchCache</resource-env-ref-name>
    <resource-env-ref-type>org.infinispan.Cache</resource-env-ref-type>
    <lookup-name>java:jboss/infinispan/cache/SearchContainer/TwoColumnSearchCache</lookup-name>
</resource-env-ref>

然后通过以下方式引用缓存:

代码语言:javascript
复制
@Resource(name="TwoColumnSearchCache")
Cache<String, List<Map<String, String>>> cache;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50753848

复制
相关文章

相似问题

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