2016-11-12 7 views
0

Infinispan + WildFly +私は、次のキャッシュマネージャ設定している私の春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); 
} 

私はInfinispanのため、この依存関係を定義したpom.xmlでWildFly 10

を実行しているの:

<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の互換性のないバージョンを使用しているように見えます。あなたがwildflyでアプリを展開しているなら、wildflyがあなたにそれを与えるなら、多分あなたは提供されているようにそれをフラグするべきですか? –

答えて

0

これは問題を解決したものです。私はdependencie 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> 
関連する問題