スタンドアロン構成 (jdk 1.7) の wildfly 8.0.0.Final にデプロイされたアプリケーションから infinispan (6.0) を使用しようとしていますが、インジェクションに問題があります。この投稿から始めて Google で検索すると、次のような状況が発生しました。
standalone.xml 内
<subsystem xmlns="urn:jboss:domain:infinispan:2.0">
...
<cache-container name="my-cache" default-cache="my-cache-default">
<local-cache name="my-cache-default">
</local-cache>
</cache-container>
</subsystem>
と
public class CacheManager {
@Resource(lookup="java:jboss/infinispan/container/my-cache")
private EmbeddedCacheManager myCacheManager;
public Cache<String, String> getCache() {
return myCacheManager.getCache();
}
}
最後に pom.xml で
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<artifactId>maven-ejb-plugin</artifactId>
<version>${version.ejb.plugin}</version>
<configuration>
...
<archive>
<manifestEntries>
<Dependencies>org.infinispan.commons export</Dependencies>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>
それは私のMANIFEST.MFで生成されます
Dependencies: org.infinispan.commons export
getCache() メソッドを使用すると、myCacheManager 属性が null であるため、java.lang.NullPointerException が発生します。管理コンソールの JNDI Bindings タブを見ると、データソースのように私が定義した他の多くのリソースがある一方で、「java:jboss/infinispan/container/my-cache」に対応するリソースがないことに気付きました (デフォルトのパス)。また、キャッシュ コンテナー定義で jndi 名を指定しようとしましたが、同じ結果になりました。
どこが間違っていますか?前もって感謝します