问题标签 [jsr107]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
caching - 在 ehcache 3.1.2 中启用 JMX 支持
我正在使用camel 2.18.1 和camel-ehcache 组件来构建一个简单的缓存。虽然缓存设置工作正常,但我发现使用 ehcache 3.1.2 注册 mbean 很困难(这是通过骆驼拉入的)。
阅读文档 - 目前尚不清楚如何启用对 3.x 的支持,因为 API 上不再提供使用 ManagementService 注册 mbean 的标准方式。
该文档与纯 ehcache 实现和 JSR-107 缓存实现有点混淆。
尽管 JSR-107 JCache 实现具有打开 JMX 支持的选项,但连接 xml 配置并启动缓存看起来会在缓存启动时引发异常:
我的 xml 配置供参考如下:关于如何启用对 ehcache 3.x 的 JMX 支持以及需要哪些额外依赖项的任何指针?
java - 如何使 Spymecached 适应 net.sf.jsr107cache.Cache?
我需要针对net.sf.jsr107cache.Cache
使用 Java net.spy.memcached
包(对于 Redis Cloud Memcached)编写一个新的实现。该包不包含此接口的实现。我当然可以Cache
自己编写一个适配器并实现,但是功能上存在一些差异
Object
钥匙,不仅仅是String
钥匙,在Cache
但不是在间谍clear()
putAll()
size()
鉴于 memcached 和 JSR-107 都是标准——有一种标准方法可以使 Spy 适应 JSR-107?
caching - 禁用/关闭 Ehcache3
有人知道如何在应用程序中关闭 ehcache 3 吗?(例如,用于测试目的或生产中的回退场景)
- 对于 ehcache 2,这可以通过:
net.sf.ehcache.disabled=true
如here所述 - 如何禁用 ehcache3 中的所有缓存(首选通过 ehcache.xml)?
org.ehcache.core.Ehcache
不包含任何禁用功能- 设置是否
<heap unit="MB">0</heap>
有效ehcache.xml
? - 我使用带有 ehcache3 的 JCache(又名 JSR-107)作为实现,也许这提供了更多选择?
caching - 锁定榛树集群中的钥匙
我正在编写一个使用 Hazelcast(JCache 标准)进行缓存的分布式应用程序。
我有一个用例,我应该锁定集群中的特定键,以防止在更新期间调用。
- thread1:获取 item1 以进行配置更改(加锁)
- thread2:获取 item1 进行更新。
- thread2:将 item1 与更新和新时间戳一起放入。
- thread1:将 item1 与旧值和时间戳一起放置
我知道 EhCache 有一些非常相似的东西,它叫做acquireReadLockOnKey(Object key)。
如何使用 JCache 和/或 Hazelcast 实现这种锁定?
java - Springboot 和 Ehcache - MultiCacheException
我正在尝试向 springboot 应用程序添加缓存,但我遇到了一个问题,即在启动期间抛出 org.ehcache.jsr107.MultiCacheException 异常。
我正在使用以下(全部通过 Maven pom 文件加载):Springboot 1.5.5、Ehcache 3.3.1、Javax 缓存 1.0.0
我的 SpringBootApplication 看起来像这样:
我有一个 CacheConfig 类,其中包含以下内容:
我的 ehcache.xml 文件包含:
测试项目服务包含:
最后,application.properties 包含:
当我运行应用程序时,我得到以下异常结尾:
我不确定该去哪里,因为我几乎复制了在此站点上找到的内容: http ://www.ehcache.org/blog/2016/05/18/ehcache3_jsr107_spring.html
任何见解将不胜感激。
谢谢。
ehcache - 如何使用 Ehcache 为 JSR-107 (JCache) 配置 XML 中的自定义序列化器/复制器?
我有一个关于 JCache / Ehcache XML 配置的问题。
我将 JSR 107 Cache Annotations CDI Reference Implementation 与 Ehcache 一起使用。
我想用@CacheResult 注释特定方法,以便这些方法的结果将缓存在为该特定方法生成的缓存中。在我们的例子中,这些方法的返回值是 Optional,你可能知道,Optional 实例是不可序列化的,因此默认情况下不能被缓存。默认使用的 SerializingCopier 和 PlainJavaSerializer 在此失败。
为了解决这个问题,我实现了我们自己的自定义 OptionalSerializer 和 OptionalCopier 来处理 Optional 值。
但是当涉及到可选返回值时,我无法让 JCache / Ehcache 清楚地使用我的自定义序列化程序和复印机。我尝试将 ehcache.xml 放在 JBoss EAP 6.4.0 的类路径中(使用 JBoss 模块),并尝试将 ehcache.xml 放在 Maven 模块的资源文件夹中,但它们只是被忽略了。即使我使这些 XML 无效,我也不会收到任何错误。
我想避免创建 CacheManager,以编程方式引用我们自己的 ehcache.xml 配置文件,因为那时我必须创建缓存。我不想要这个。我希望缓存由 Cache Annotations CDI CacheResultInterceptor 创建,而且我似乎没有选项可以覆盖创建自己的 CacheManager 的方法...
有谁知道我应该怎么做才能解决这个问题?我只想使用提供的拦截器,并有一个 XML 配置,指定自定义序列化器和复制器将需要用于特定的返回类型。
豆类.xml:
示例方法:
您当前使用的 Ehcache 版本;Ehcache 3.4.0
粘贴您遇到问题的 Cache/CacheManager 的配置;
添加您使用 Ehcache 的其他库或框架的任何名称和版本(例如 Hibernate);
- Java EE 6
- EJB 3.x
- CDI 1.x
- JCache 1.0.0 (JSR 107)
- JSR 107 缓存注释 CDI RI 1.0.0
提供 JDK 和 OS 版本也可能有用。
- Java SDK 1.8 更新 65
- JBoss EAP 6.4.0
- 视窗 10
java - 理解@Enable...注解并发
我们有一个使用 spring-boot-cache-starter 的项目,注册一个实现,并在代码中ehCache
CacheManager
传播。@Cacheables
然后,其他一些团队创建了一个 starter,它基本上依赖于spring-boot-cache
starter (hashmap) 自动配置的默认配置来处理自己的@Cacheable
方法。
两个代码都包含@EnableCaching
注释,我们的问题是,如果我们注释主项目的 @EnableCaching 注释,行为会有所不同。
- 如果我们不在
@EnableCaching
我们的项目中评论,当我们使用自定义启动器时,一切正常。@Cacheables
from the starter 在 starter 范围内被索引和解析,但从@Cacheables
我们的域被解析在我们的ehcache
. - 如果我们
@EnableCaching
在我们的项目中发表评论,那么启动器和我们的项目都会@Cacheables
尝试针对我们的ehCache
实现来解决。
这打破了我迄今为止的许多先入之见:
我一直认为诸如
@Enable
... 之类的注释适用于所有上下文,无论放置(启动器/应用程序配置)如何,也无论在扫描所有@Configuration
类时是否找到一次或两次。为什么当两个注释都存在时案例会起作用,我猜
CacheManager
spring-boot-cache-starter 中的 是 a@ConditionalOnBean
,所以在这种情况下,我希望两个项目都使用ehcache
bean 进行解析,而不是每个项目的域
PS:@EnableCaching
在我们的主项目中找到的放在一个内部静态@Configuration 类上。这可能很重要吗?
java - Redisson(通过 JCache API)仅反序列化为 String
我有一个 Redisson 客户端来存储一对字符串 LocalDateTime。它被配置为通过 JCache API (JSR-107) 使用。
存储完成,使用 Jackson 转换为类似但检索的值不使用任何转换器并返回字符串,在调用2018-01-23T11:59:34.997834
中给出 ClassCastException 。cache#get
我在这里想念什么?
spring-mvc - EHCache+Tomcat+Terracota+Jsr107+Spring+@CacheEvict(allEntries=true) = UnsupportedOperationException: 实现我
我设法将 EhCache 与 Terracota 一起用于分布式集群(项目位于https://github.com/ehcache/ehcache3/releases/download/v3.4.0/ehcache-clustered-3.4.0-kit.zip)并进行了 Spring 配置集成如:
然后,在管理器上:
缓存似乎工作正常。在测试(Junit 或手动启动 tomcat)时,findAll 和 findById 函数在第一次尝试后会加速很多。
但是在尝试保存时,出现异常:
这里有什么想法吗?非常感谢您提前。