我們正在將SpinBoot作爲內存數據源使用Infinispan構建應用程序。我們正在經歷是描述Indexing was not enabled on this cache
例外:Springboot和infinispan異常
Servlet.service()與路徑的servlet [DispatcherServlet的]上下文[]拋出異常[請求處理失敗;嵌套異常是java.lang.IllegalArgumentException:此緩存未啓用索引。接口org.hibernate.search.spi.SearchIntegrator在註冊表中找不到] java.lang.IllegalArgumentException:此緩存未啓用索引。在org.infinispan.query.impl.ComponentRegistryUtils.getComponent(ComponentRegistryUtils.java:27)〜[infinispan-query-8.2.4.Final.jar:8.2。]中找不到註冊表 中的接口org.hibernate.search.spi.SearchIntegrator。 4.Final] at org.infinispan。org.infinispan.query.impl.ComponentRegistryUtils.getComponent(ComponentRegistryUtils.java:20)〜[infinispan-query-8.2.4.Final.jar:8.2.4.Final] at org.infinispan。 。query.impl.SearchManagerImpl(SearchManagerImpl.java:40)〜[Infinispan的查詢-8.2.4.Final.jar:8.2.4.Final]
我們的配置看起來像以下:
@Bean
public InfinispanCacheConfigurer cacheConfigurer() {
return manager -> {
final org.infinispan.configuration.cache.Configuration ispnConfig = new ConfigurationBuilder()
.clustering()
.cacheMode(CacheMode.LOCAL)
.indexing()
.setProperty("default.directory_provider", "ram")
.setProperty("default.indexmanager", "near-real-time")
.index(Index.ALL)
.build();
manager.defineConfiguration("local-sync-config", ispnConfig);
};
}
,我們正在嘗試存儲實體:
@Indexed
public class Deal {
@Field
private Long id;
@Field
private String counterparty;
@Field
private String grid;
@Field
@DateBridge(resolution = Resolution.DAY)
private Date startDate;
@Field
@DateBridge(resolution = Resolution.DAY)
private Date endDate;
@Field
private int position;
...
}
的目標是擁有索引和查詢工作,我們已搜查谷歌沒有運氣。
謝謝!
您應該啓用Infinispan的日誌記錄並檢查它是否使用了您期望的緩存......這將在9.0中更改,但在8.x中,您可以調用getCache(「random-name」),它會創建一個新的緩存基於默認配置,可能沒有啓用索引。 –