JBoss7.1 Web インターフェイスで作成した Infinispan キャッシュがあります。これは、索引付けされた分散キャッシュとして構成されます。
ファイルにjboss-deployment-structure.xml
依存関係を追加したorg.infinispan
のでorg.hibernate
、キャッシュにアクセスできます。また、次の Maven 依存関係を追加しました。
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-core</artifactId>
<version>5.1.7.Final</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-query</artifactId>
<version>5.1.7.Final</version>
</dependency>
5.1.7.Final は、私が使用している JBoss7.1.3 の org.infinispan モジュールに含まれているバージョンです。これにより、必要なすべての依存関係 (lucene
およびを含むhibernate-search-engine
) が取り込まれるため、プロジェクトに必要なライブラリが含まれています。ただし、ここで説明した最初のステップを実行する場合:
SearchManager searchManager = Search.getSearchManager( cache );
ComponentRegistryUtils.getComponent(cache, SearchFactoryIntegrator.class)
スローに失敗した呼び出しIllegalArgumentException
:
このキャッシュではインデックス作成が有効になっていませんでした。インターフェイス org.hibernate.search.spi.SearchFactoryIntegrator がレジストリに見つかりません
cache.getCacheConfiguration().indexing().enabled()
を返すとわかるように、私のキャッシュではインデックス作成が有効になっていますtrue
。しかし、アプリケーションはそうではないと考えています。おそらくこれは、キャッシュがクラスComponentRegistry
にアクセスできないためですorg.hibernate.search.spi.SearchFactoryIntegrator
(キャッシュはJBossグローバルコンポーネントですが、休止状態の検索ライブラリはWARのWEB-INF/lib
ディレクトリにあります)。
これを行うべき別の方法はありますか?