Wildfly 8.1 + EHCache + 注释不起作用

Posted

技术标签:

【中文标题】Wildfly 8.1 + EHCache + 注释不起作用【英文标题】:Wildfly 8.1 + EHCache + Annotations not working 【发布时间】:2014-08-22 20:54:48 【问题描述】:

我正在构建一个 Java EE 应用程序,并希望使用 JSR107 的 @CacheResult 注释“透明地”向我的服务层添加一些缓存。这是我的第一个“全功能”Java EE 应用程序,我通常在 Spring 中工作,注解处理似乎要容易得多;)

所以,这是我的软件堆栈:

野蝇 8.1 列表项 EHCache 2.8 EHCache-JCache JSR 107参考实现+注解处理(https://github.com/jsr107/RI/tree/master/cache-annotations-ri)

...这是我 EAR 的布局:

根目录包含一些 EJB/CDI bean jar /lib 包含所有必需的库 其中一个根级 jar 中的一个 bean 包含一些用 @CacheResult 注释的方法,该方法的参数是一个字符串

我的问题:没有发生缓存;)

具体问题:

这里有人获得过我用来成功协同执行缓存的软件堆栈吗? 有没有办法让我获得更多关于拦截器处理期间内部发生的调试信息?我尝试了各种记录器配置并挖掘了我正在使用的框架的来源,但似乎错过了关键点。

提前致谢

斯文

更新

如果我将 @Interceptors(CacheResultInterceptor.class) 显式添加到服务 bean,它就可以工作。但是,我自己的拦截器(在同一个 jar 文件中)不需要这样声明,相应的拦截器绑定类型就足够了。如果我尝试使用驻留在外部 jar 中的拦截器,会有什么不同吗?

【问题讨论】:

【参考方案1】:

我在这里找到了正确答案的相关问题:https://***.com/a/12081608/2290153

相关规范是http://docs.jboss.org/cdi/spec/1.0/html/interceptors.html,重要部分是第9.4节。

在 beans.xml 中指定 CacheResultInterceptor(全限定名)应该可以工作。

【讨论】:

以上是关于Wildfly 8.1 + EHCache + 注释不起作用的主要内容,如果未能解决你的问题,请参考以下文章

EJB 远程客户端从 JBoss AS 7.1 迁移到 Wildfly 8.1

EJB远程客户端从JBoss AS 7.1迁移到Wildfly 8.1

Eclipse 中的 Willdfly 8.1 运行时在哪里? [复制]

Wildfly 10.1 部署后停止部署

Ehcache计算Java对象内存大小

Android百度地图 - 在地图上标注已知GPS纬度经度值的一个或一组覆盖物 - OPEN 开发经验库 - 360安全浏览器 8.1