Я следую некоторому руководству по установке JCache в среде Wildfly 14, используя в качестве поставщика Infinispan.
Я следовал за этими шагами:
- Я скачал версию модуля wildfly 9.4.14 с сайта Infinispan
- Я скопировал содержимое zip в модуль dir от Wildfly
- я добавил в свое приложение файл jboss-deploy-structure.xml
- Я добавил перехватчики в файл beans.xml в моем приложении
- я добавляю аннотацию @CacheResult к функции
- Я запускаю Wildfly и получаю следующую ошибку
org.jboss.weld.exceptions.DeploymentException: WELD-001408: неудовлетворенные зависимости для типа InfinispanExtensionEmbedded с квалификаторами @Default
в точке внедрения [BackedAnnotatedField] @Inject private org.infinispan.cdi.embedded.AdvancedCacheProducer.infinispanExtension
Я добавляю информацию, которая может быть полезной. Приложение, которое я развертываю на wildfly - это ухо, и вот структура, которую я использую:
- файл уха
- Lib
- META-INF
- файл библиотеки JAR
- META-INF
- файл beans.xml
- JBoss развертывания-structure.xml
- WAR-файл
jboss-deploy-structure.xml:
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
<dependencies>
<module name="org.infinispan" slot="ispn-9.4" services="export"/>
<module name="org.infinispan.cdi.embedded" slot="ispn-9.4" services="export"/>
<module name="org.infinispan.jcache" slot="ispn-9.4" services="export"/>
</dependencies>
</deployment>
</jboss-deployment-structure>
beans.xml:
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
version="1.1" bean-discovery-mode="all">
<interceptors>
<class>org.infinispan.jcache.annotation.InjectedCacheResultInterceptor</class>
<class>org.infinispan.jcache.annotation.InjectedCachePutInterceptor</class>
<class>org.infinispan.jcache.annotation.InjectedCacheRemoveEntryInterceptor</class>
<class>org.infinispan.jcache.annotation.InjectedCacheRemoveAllInterceptor</class>
<class>org.infinispan.jcache.annotation.CacheResultInterceptor</class>
<class>org.infinispan.jcache.annotation.CachePutInterceptor</class>
<class>org.infinispan.jcache.annotation.CacheRemoveEntryInterceptor</class>
<class>org.infinispan.jcache.annotation.CacheRemoveAllInterceptor</class>
</interceptors>
</beans>
В этой стандартной конфигурации, я ожидаю, что начало перехватчика будет определено в запуске beans.xml, чтобы я мог использовать контейнер кеша по умолчанию в приложении