我正在遵循一些指南,以Infinispan作为提供程序在Wildfly 14环境中设置JCache。
我遵循了以下步骤: -我从Infinispan网站下载了wildfly模块版本9.4.14 -我将zip的内容复制到Wildfly的模块目录中 -我在文件中添加了jboss-deployment-structure.xml文件 -我在应用程序的beans.xml文件中添加了拦截器 -我将注释@CacheResult添加到函数中 -我启动Wildfly并收到以下错误 org.jboss.weld.exceptions.DeploymentException:WELD-001408:类型InfinispanExtension的不满意依赖项包含有限定符@Default 在注入点[BackedAnnotatedField] @Inject私有org.infinispan.cdi.embedded.AdvancedCacheProducer.infinispanExtension
我添加了有用的信息。我要在wildfly上部署的应用程序很麻烦,这就是我正在使用的结构:
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>
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>
使用这种标准配置,我希望拦截器开始在bean.xml中开始定义,因此我可以在应用程序中使用默认的缓存容器
答案 0 :(得分:0)
org.infinispan.cdi.embedded和org.infinispan.jcache模块内部具有SPI扩展(jar / META-INF / services文件夹)。只需在jboss-deployment-structure.xml中的模块依赖项中添加services =“ export”即可启用它们。 这是我的jboss-deployment-structure.xml:
<jboss-deployment-structure>
<deployment>
<module-alias name="deployment.magic-blog" />
<dependencies>
<module name="org.infinispan.cdi.embedded" slot="ispn-9.4" export="true" services="export" />
<module name="org.infinispan.jcache" slot="ispn-9.4" export="true" services="export" />
<module name="javax.cache.api" slot="ispn-9.4" export="true"/>
</dependencies>
</deployment>