我正在按照一些指南使用作为提供程序 Infinispan 在 Wildfly 14 环境中设置 JCache。
我遵循了这些步骤: - 我从 Infinispan 网站下载了 Wildfly 模块版本 9.4.14 - 我在 Wildfly 的模块目录中复制了 zip 的内容 - 我将文件 jboss-deployment-structure.xml 添加到我的应用程序中 - 我添加了拦截器到我的应用程序上的 beans.xml 文件 - 我将注释 @CacheResult 添加到函数 - 我启动 Wildfly 并收到以下错误 org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type InfinispanExtensionEmbedded在注入点使用限定符 @Default [BackedAnnotatedField] @Inject private org.infinispan.cdi.embedded.AdvancedCacheProducer.infinispanExtension
我添加了可能有用的信息。我在 wildfly 上部署的应用程序是一只耳朵蚂蚁,这是我正在使用的结构:
- 耳朵文件
- 库
- 元信息
- JAR 库文件
- 元信息
- bean.xml 文件
- jboss-部署-结构.xml
- WAR文件
jboss-deployment-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>
豆类.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 中定义的拦截器开始起作用,因此我可以在应用程序中使用默认缓存容器