2016-11-12 101 views
0

在我的春节,1.4应用程序,我已经配置了以下缓存管理器:的Infinispan + WildFly +春

@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 

请告诉我这个错误的原因,以及如何解决它?

+0

看起来你正在使用的Infinispan不兼容的版本。如果你是在野蛮地部署应用程序,也许你应该按照野蝇提供给你的那样标记该应用程序? –

回答

0

好的,这是什么解决了这个问题。我必须添加依赖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> 
相关问题