我正在尝试在独立配置(jdk 1.7)中部署在 Wildfly 8.0.0.Final 中的应用程序中使用 infinispan(6.0),但我在注入时遇到了一些问题。从这篇文章开始并在谷歌上搜索我遇到了这种情况:
在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() 方法时,我有 java.lang.NullPointerException 因为 myCacheManager 属性为空。查看管理控制台中的 JNDI 绑定选项卡,我注意到,虽然我定义了许多其他资源,例如数据源,但没有对应于“java:jboss/infinispan/container/my-cache”的资源(我应该是默认路径)。我还尝试在缓存容器定义中指定 jndi 名称,结果相同。
我哪里错了?提前致谢