2016-11-12 94 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> 
相關問題