[英]Infinispan + WildFly + Spring
在我的Spring 1.4应用程序中,我配置了以下缓存管理器:
@Bean
public CacheManager cacheManager() throws Exception {
JndiTemplate jndiTemplate = new JndiTemplate();
EmbeddedCacheManager embededCacheManager = (EmbeddedCacheManager) jndiTemplate.lookup("java:jboss/infinispan/container/CONTAINER");
SpringEmbeddedCacheManager cacheManager = new SpringEmbeddedCacheManager(embededCacheManager);
}
我正在运行WildFly 10。
在pom.xml
我已经为Infinispan定义了这个依赖:
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-spring</artifactId>
<version>8.1.0.Final</version>
</dependency>
当我部署应用程序时,Infinispan JNDI查找找到在WildFly配置中定义的缓存容器,一切都很顺利。 但是,当我运行使用缓存的方法时,我得到以下异常:
java.lang.IncompatibleClassChangeError: Class org.jboss.as.clustering.infinispan.DefaultCache does not implement the requested interface org.infinispan.commons.api.BasicCache
是什么原因导致此错误以及如何解决?
好的,这就解决了这个问题。 我不得不将相关的org.jboss.as.clustering.infinispan
添加到MANIFEST中。 所以,我的POM有maven-war-plugin
定义如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<Dependencies>org.infinispan, org.infinispan.commons, org.jboss.as.clustering.infinispan export</Dependencies>
</manifestEntries>
</archive>
</configuration>
</plugin>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.