当前位置: 首页 > 知识库问答 >
问题:

将infinispan缓存注入Wildfly 8.0.0. Final

黎阳冰
2023-03-14

我正试图从部署在wildfly 8.0.0中的应用程序中使用infinispan(6.0)。独立配置(JDK1.7)中的最终版本,但我在注入方面有一些问题。从这篇帖子开始,在谷歌上搜索,我得到了这样的结论:

在standalone.xml

        <subsystem xmlns="urn:jboss:domain:infinispan:2.0">
            ...
            <cache-container name="my-cache" default-cache="my-cache-default">
                <local-cache name="my-cache-default">
                </local-cache>
            </cache-container>
        </subsystem>

而且

public class CacheManager {

    @Resource(lookup="java:jboss/infinispan/container/my-cache")
    private EmbeddedCacheManager myCacheManager;

    public Cache<String, String> getCache() {
        return myCacheManager.getCache();
    }
}

最后在pom中。xml

<build>
    <finalName>${project.artifactId}</finalName>
    <plugins>
        <plugin>
            <artifactId>maven-ejb-plugin</artifactId>
            <version>${version.ejb.plugin}</version>
            <configuration>
                ...
                <archive>
                    <manifestEntries>
                        <Dependencies>org.infinispan.commons export</Dependencies>
                    </manifestEntries>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

这在我的清单上产生。MF

Dependencies: org.infinispan.commons export

当我使用getCache()方法时,我java.lang.NullPointerException,因为myCacheManager属性为null。在管理控制台的JNDI Bindings选项卡中查看我注意到,虽然有许多其他资源由我定义,如数据源,但没有对应于"java: jboss/infinispan/容器/my-cache"的资源(我应该是默认路径)。我还尝试在缓存容器定义中指定jndi名称,结果相同。

我错在哪里?提前谢谢

共有1个答案

隗嘉歆
2023-03-14

使用

@Resource(lookup=“java:jboss/infinispan/container/my cache”)私有缓存容器

而不是下面

@Resource(lookup=“java:jboss/infinispan/container/my cache”)私有嵌入式缓存管理器myCacheManager

这将为您的缓存容器提供支持,并添加依赖项。infinispan在META-INF中的导出

 类似资料:
  • 我有两个应用程序使用相同的数据库实体。这两个应用程序都部署在jboss eap 6.2独立的集群上。DB表仅从一个应用程序中更新,但从两个应用程序中读取。这两个应用程序都使用本机hibernate API从数据库读取/写入数据。 在嵌入式模式下将infinispan启用为2LC后,如何确保在一个应用程序中更新的缓存实体从第二个应用程序缓存中失效?是否有任何JMX/JMS接口用于信号缓存失效? 若我

  • 我是infinispan的新手,通过实验学习。在尝试访问不同名称的远程缓存失败后,我需要一些帮助。下面是我的infinispan客户端-服务器模式未嵌入的场景。 1) 我在infinispan集群中启动了node1,并将默认远程缓存名称设置为node1\u cache--Hotrod服务器已启动 2) 已在infinispan群集中启动node2,并将默认远程缓存名称设置为node2\u cach

  • 在Infinispan 6.0中。有x版本,但wildfly 8.2的属性是什么? 谢啦

  • 我有一个带有guice但没有spring的应用程序。我有: 我有两个实现: 我希望能够将缓存服务注入所有其他服务,并且希望在缓存服务中注入正常服务。问题是,当我想在其他类中注入服务接口时,实现是随机选择的。有没有办法解决这个问题?

  • 我想知道是否可以使用Infinispan与Oracle数据库进行缓存数据同步。这是我的场景。我有两个主要的应用程序。一个是高度并发使用的应用程序,另一个用作管理模块。由于它是高度并发的,我希望减少数据库连接(将实体加载到缓存(读写启用)中,并在不调用数据库的情况下从此处使用它)。但同时我想根据缓存的变化更新数据库,因为管理模块直接使用数据库。那个更新过程(缓存到数据库)能在实体级处理而不涉及应用程

  • 尝试使用infinispan作为Hibernate的二级缓存,但总是给我以下错误 org.infinispan.jmx.JMX MBean实例类型=CacheManager, name="DefaultCacheManager"已经在'org.infinispan'JMX域下注册。如果您想允许多个配置了相同JMX域的实例,请在org.infinispan.jmx.JmxUtil.buildJmxD