我在嘗試使用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屬性,但是,作爲本地緩存,我認爲它不會有什麼好處。
有什麼想法?