You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hibernate v6集成Ehcache缓存失败:XmlConfigurationException报错

Hibernate v6集成Ehcache缓存报错Cache provider not started解决办法

核心问题定位

报错根源是JAXB依赖缺失:Hibernate 6和Ehcache解析XML配置时需要JAXB实现,但JDK 9+已将JAXB从核心模块移除,仅添加--add-modules java.xml.bind只引入了API,缺少具体实现类,导致无法解析ehcache.xml。

具体修复步骤

1. 补充JAXB实现依赖

在Gradle中添加Jakarta版本的JAXB依赖(适配Hibernate 6的Jakarta EE规范,避免冲突):

dependencies {
    // JAXB API
    implementation 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.1'
    // JAXB 参考实现
    implementation 'org.glassfish.jaxb:jaxb-runtime:4.0.3'
}

2. 检查Ehcache配置文件

  • 确保ehcache.xml放在src/main/resources根目录,若自定义路径需在Hibernate配置中指定:
    hibernate.javax.cache.uri=classpath:ehcache-custom.xml
    
  • 验证XML格式符合Ehcache 3.x规范(Hibernate 6适配Ehcache 3+),示例基础配置:
    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns="http://www.ehcache.org/v3"
            xsi:schemaLocation="http://www.ehcache.org/v3 http://www.ehcache.org/schema/ehcache-core-3.0.xsd">
        <cache alias="com.yourpackage.YourEntity">
            <key-type>java.lang.Long</key-type>
            <value-type>com.yourpackage.YourEntity</value-type>
            <expiry>
                <ttl unit="minutes">10</ttl>
            </expiry>
            <heap unit="entries">1000</heap>
        </cache>
    </config>
    

3. 修正Hibernate缓存配置

确保配置中正确指定JCache提供方:

# 启用二级缓存
hibernate.cache.use_second_level_cache=true
# 指定JCache区域工厂
hibernate.cache.region.factory_class=org.hibernate.cache.jcache.JCacheRegionFactory
# 指定Ehcache作为JCache实现
hibernate.javax.cache.provider=org.ehcache.jsr107.EhcacheCachingProvider

4. 移除不必要的模块参数

已添加JAXB依赖后,--add-modules java.xml.bind参数可能引发冲突,建议从Gradle运行任务中移除。

5. 排查依赖冲突

执行gradle dependencies命令,检查是否存在旧版javax.xml.bind或ehcache依赖,排除冲突项:

configurations.all {
    exclude group: 'javax.xml.bind', module: 'jaxb-api'
    exclude group: 'net.sf.ehcache', module: 'ehcache' // 排除Ehcache 2.x旧版本
}

内容的提问来源于stack exchange,提问作者Carry out

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 04:15:09