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 运行时在哪里? [复制]
Android百度地图 - 在地图上标注已知GPS纬度经度值的一个或一组覆盖物 - OPEN 开发经验库 - 360安全浏览器 8.1