我已經定義了一個緩存(本地緩存)的Infinipan緩存容器。 在集羣環境(高可用性,例如standalone-full-ha.xml)中沒有問題。 使用@Resource Annotation查找緩存引用可以正常工作。如何在Non HA Wildfly中查找Infinispan緩存10
但與非羣集配置部署到Wildfly時(無HA,如獨立-full.xml配置文件)此查找失敗, WFLYCTL0184:新的失蹤/不滿意的依賴 我仍然可以定義CLI腳本的高速緩存和我可以在運行時配置中看到它們。 區別在於JNDI註冊表中缺少JNDI資源名稱(這是查找失敗的原因)。
使用缺省standalone-full-ha.xml(其工作原理)和standalone-full.xml(部署失敗時)可以重現該問題。
如何在非集羣/非HA配置中查找Infinispan緩存? 如果羣集配置文件處於活動狀態,我想要使用相同的代碼和部署來緩存任何內容。
CLI腳本:
batch
/subsystem=infinispan/cache-container=test-cache-container/:add(default-cache=test-cache,jndi-name=java:jboss/infinispan/container/test)
/subsystem=infinispan/cache-container=test-cache-container/transport=TRANSPORT/:add(lock-timeout=30000)
/subsystem=infinispan/cache-container=test-cache-container/local-cache=test-cache:add(indexing=NONE,jndi-name=infinispan/test-cache-container/test-cache)
/subsystem=infinispan/cache-container=test-cache-container/local-cache=test-cache/transaction=TRANSACTION:add(locking=PESSIMISTIC, mode=FULL_XA)
/subsystem=infinispan/cache-container=test-cache-container/local-cache=test-cache/eviction=EVICTION:add(strategy=NONE)
/subsystem=infinispan/cache-container=test-cache-container/local-cache=test-cache/locking=LOCKING:add(acquire-timeout=30000,isolation=REPEATABLE_READ)
run-batch
查找與@Resource:
@Singleton
@Remote(DataStore.class)
public class DataStoreBean implements DataStore {
@Resource(lookup = "java:jboss/infinispan/test-cache-container/test-cache")
private Cache<String, Object> cache;
JBoss的部署,structure.xml:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
<dependencies>
<module name="org.infinispan" export="true"/>
<module name="org.infinispan.commons" export="true"/>
</dependencies>
</deployment>
</jboss-deployment-structure>