2012-09-03 58 views
0

我在嘗試使用infinispan-cdi version 5.1.5.FINAL在JBoss AS 7.1.1.Final上運行小型測試時遇到了問題。我確實試圖運行快速啓動,一切正常。在使用infinispan-cdi時在驅逐後讀取文件存儲時出錯

錯誤是:

17:28:05963 ERROR [org.infinispan.loaders.file.FileCacheStore] (HTTP - 0.0.0.0-8080-1)ISPN000062:錯誤在讀取file: D:\ jboss \ standalone \ data \ learning \ learning-cache \ 1450574848: java.lang.ClassNotFoundException: org.infinispan.cdi.interceptor.DefaultCacheKey from [Module 「org.jboss.as.clustering。 infinispan:main「from local module loader @ 43f46f3b(roots:D:\ jboss \ modules)]

在Maven的POM文件我有

<dependency> 
    <groupId>org.infinispan</groupId> 
    <artifactId>infinispan-cdi</artifactId> 
    <version>5.1.5.FINAL</version> 
</dependency> 
JBoss上的獨立,ha.xml

<manifestEntries> 
    <Dependencies>org.infinispan</Dependencies> 
</manifestEntries> 

我有:

<subsystem xmlns="urn:jboss:domain:infinispan:1.2" default-cache-container="learning"> 
    <cache-container name="learning" default-cache="learning-cache"> 
     <local-cache name="learning-cache" start="EAGER"> 
      <eviction strategy="LRU" max-entries="2"/> 
      <file-store/> 
     </local-cache> 
    </cache-container> 
</subsystem> 

要設置緩存上的Java I有:

public class Config { 
    @Resource(lookup = "java:jboss/infinispan/container/learning") 
    @Produces 
    EmbeddedCacheManager defaultCacheManager; 
} 

正在使用的數據是:

public class User implements Serializable{ 
    private static final long serialVersionUID = -577278578670082130L; 

    private long id; 
    private String name = "abs"; 

    ... getters and setters... 
} 

,我使用該服務攔截器,如:

@CacheResult(cacheName = "learning-cache") 
    public User findUser(String id) { 

      User user = new User(); 
      user.setName(id); 
      return user; 
    } 

    @CachePut(cacheName = "learning-cache") 
    public void storeUser(String id, @CacheValue User user) { 
    Log("Stored:" + user.getName()); 
    } 

我必須說,一切都很正常,直到它試圖從文件存儲讀取。那是當我得到上面提出的錯誤。 當我打開緩存文件使用文本編輯器,我可以看到org.infinispan.cdi.interceptor.DefaultCacheKey參考..

任何幫助或方向將是高apreciated。

乾杯,

EDIT1: 於是我被玩弄,並試圖做同樣沒有攔截:

@Inject 
Cache<String, User> cache; 

public User findUser(String id) { 
        if (cache.containsKey(id)) { 
           return cache.get(id); 
        } else { 
           User user = new User(); 
       user.setId(id); 
           user.setName("asdad"); 
           cache.put(id, user); 
           return user; 
        } 
    } 

現在的錯誤是:由

引起:JAVA .lang.ClassNotFoundException: org.infinispan.quickstart.cdi.config.User from [模塊 「org.jboss.as.clustering.infinispan:main」from local mod ULE裝載機 @ 64b2ad57(根:d:\ jboss的\模塊)

因此,這是關係到類加載器沒有發現被編組到也許盤狀JBoss的問題,而不是Infinispan的班? 我一直在尋找,但不應該只用Serializable以及? 我也在考慮storeAsBinary屬性,但是,作爲本地緩存,我認爲它不會有什麼好處。

有什麼想法?

回答

相關問題