TL:DR我收到以下錯誤消息,我無法看到它的原因,啓用了索引,並且SearchFactoryIntegrator位於類路徑中需要看到它。由於SearchFactoryIntegrator未在註冊表中,無法查詢JBoss 7上的Infinispan
此緩存未啓用索引。接口 org.hibernate.search.spi.SearchFactoryIntegrator在註冊表
長的版本未發現:
- JBoss的版本:7.1.1 FINAL
- Infinispan的版本:5.16(從5.1.2升級JBoss的船隻在試圖解決問題)
- Java版本:1.7
我試圖建立一個簡單的測試應用程序來運行鍼對Infinispan緩存的查詢。
我正在成功向緩存中添加對象。緩存被定義爲private org.infinispan.Cache<String, Agent> cache;
,其中Agent是我自己的對象。
當試圖從線 SearchManager searchManager = Search.getSearchManager(cache);
17:35:43,873 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/SearchableCacheTest].[Faces Servlet]] (http-localhost-127.0.0.1-8080-1) Servlet.service() for servlet Faces Servlet threw exception: java.lang.IllegalArgumentException: Indexing was not enabled on this cache. interface org.hibernate.search.spi.SearchFactoryIntegrator not found in registry
at org.infinispan.query.impl.ComponentRegistryUtils.getComponent(ComponentRegistryUtils.java:40) [infinispan-query-5.1.6.FINAL.jar:5.1.6.FINAL]
at org.infinispan.query.SearchManagerImpl.<init>(SearchManagerImpl.java:56) [infinispan-query-5.1.6.FINAL.jar:5.1.6.FINAL]
at org.infinispan.query.Search.getSearchManager(Search.java:39) [infinispan-query-5.1.6.FINAL.jar:5.1.6.FINAL]
是
索引的重要組成部分,查詢緩存我收到以下錯誤並沒有在這個緩存啓用。接口org.hibernate.search.spi.SearchFactoryIntegrator不是在註冊表中找到
在此之前錯誤cache.getCacheConfiguration().indexing().enabled()
解析true
緩存是默認的「集羣」緩存的修改版本在standalone-ha.xml
已配置的JBoss。
<cache-container name="cluster" aliases="ha-partition" default-cache="default" start="EAGER">
<transport lock-timeout="60000"/>
<replicated-cache name="default" mode="SYNC" batching="true" indexing="LOCAL">
<locking isolation="REPEATABLE_READ"/>
<store class="org.infinispan.loaders.file.FileCacheStore" preload="true" passivation="false" fetch-state="true" purge="false">
<property name="location">
/tempCacheIndex
</property>
</store>
</replicated-cache>
</cache-container>
我看到在配置文件位置在創建索引所以它似乎能布爾解析爲真爲當前狀態的事實表示。
我已經創建了JBoss的一個org.infinispan.query模塊,它包含以下
- 的Avro-1.5.1.jar
- 休眠公地的註解,4.0.1.Final.jar
- 休眠的搜索引擎,4.1.1.Final.jar
- Infinispan的查詢,5.1.6.FINAL.jar
- 傑克遜核心ASL-1.9.2.jar
- 傑克遜映射器-asl-1.9.2。罐子
- Lucene的核心 - 3.5.0.jar
- paranamer-2.3.jar
- SLF4J-API-1.6.1。罐子
- 活潑-java的1.0.4.1.jar
所有上述的在定義爲資源的根在module.xml該模塊。 我已經修改了module.xml的模塊org.infinispan
有模塊的依賴關係org.infinispan.query
我已經宣佈在我的JBoss部署,structure.xml這兩個模塊
沒有人有任何想法的依賴爲什麼這可能會發生並可能有解決方案?
注:有一個非常類似的問題here但他最終不成功,並選擇了不同的路線。
列表您可能要考慮一下更新到JBoss 7.2.0(或至少自己建立一個7.1.3)... –
@ShadowCreeper 7.2.0使這個更容易,即解決方案?代碼正在發展到現有的基礎架構,我必須向我的老闆和客戶證明應用服務器版本的變化。 –
從理論上講,7.1.3比7.1.1少出錯。而且由於EAP現在在7.2.0上,我會說(再理論上)7.2.0仍然沒有多少錯誤。就讓它變得更容易,我不能說。我可以說7.2.0不包含查詢模塊。然而,我發現在我的戰爭中加入罐子比讓模塊方法起作用要容易得多。包括我的戰爭中的罐子讓我可以使用更新的版本(已經在7.2.0中 - 我不記得它們是否在7.1.3中)。 –