Я пытаюсь использовать infinispan (6.0) из своего приложения, развернутого в wildfly 8.0.0.Final, в автономной конфигурации (jdk 1.7), но у меня есть некоторые проблемы с внедрением. Начиная с этот пост и выполняя поиск в Google, у меня возникла следующая ситуация:
В автономном.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 имеет значение null. Глядя на вкладку JNDI Bindings в административной консоли, я заметил, что, хотя есть много других ресурсов, определенных мной, таких как источники данных, нет ресурса, соответствующего «java:jboss/infinispan/container/my-cache» (который я должен был путь по умолчанию). Я также попытался указать имя jndi в определении контейнера кеша с теми же результатами.
Где я не прав? заранее спасибо