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

添加neo4j-ogm-quarkus依赖后Quarkus应用启动失败

问题:添加neo4j-ogm-quarkus依赖后Quarkus应用无法启动

使用Gradle+Kotlin创建了Quarkus v3.17.7版本的新项目,添加依赖implementation("org.neo4j:neo4j-ogm-quarkus:3.11.0")后应用无法启动。尝试过以下操作,但问题依旧:

  • 让Quarkus自动构建Neo4j Docker镜像
  • 使用自有Neo4j数据库(v4.3.3和v5.26.1)
  • 更换Quarkus版本(v3.17.3、v3.15.3)
  • 更换neo4j-ogm-quarkus版本(3.9.0)

启动错误日志

2025-01-27 09:23:41,492 ERROR [io.qua.run.Application] (Quarkus Main Thread) Failed to start application: java.lang.RuntimeException: Failed to start quarkus
    at io.quarkus.runner.ApplicationImpl.doStart(Unknown Source)
    at io.quarkus.runtime.Application.start(Application.java:101)
    at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:119)
    at io.quarkus.runtime.Quarkus.run(Quarkus.java:71)
    at io.quarkus.runtime.Quarkus.run(Quarkus.java:44)
    at io.quarkus.runtime.Quarkus.run(Quarkus.java:124)
    at io.quarkus.runner.GeneratedMain.main(Unknown Source)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:569)
    at io.quarkus.runner.bootstrap.StartupActionImpl$1.run(StartupActionImpl.java:116)
    at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.lang.NoClassDefFoundError: io/micrometer/context/ContextSnapshotFactory
    at java.base/java.lang.Class.getDeclaredFields0(Native Method)
    at java.base/java.lang.Class.privateGetDeclaredFields(Class.java:3297)
    at java.base/java.lang.Class.getDeclaredFields(Class.java:2371)
    at org.neo4j.ogm.metadata.FieldsInfo.<init>(FieldsInfo.java:57)
    at org.neo4j.ogm.metadata.ClassInfo.<init>(ClassInfo.java:139)
    at org.neo4j.ogm.metadata.ClassInfo.<init>(ClassInfo.java:119)
    at org.neo4j.ogm.metadata.DomainInfo.lambda$addClass$2(DomainInfo.java:172)
    at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1220)
    at org.neo4j.ogm.metadata.DomainInfo.addClass(DomainInfo.java:172)
    at org.neo4j.ogm.metadata.DomainInfo.create(DomainInfo.java:98)
    at org.neo4j.ogm.metadata.MetaData.<init>(MetaData.java:66)
    at org.neo4j.ogm.session.SessionFactory.<init>(SessionFactory.java:124)
    at org.neo4j.ogm.session.SessionFactory.<init>(SessionFactory.java:110)
    at org.neo4j.ogm.quarkus.runtime.Neo4jOgmRecorder.initializeSessionFactory(Neo4jOgmRecorder.java:65)
    at io.quarkus.deployment.steps.Neo4jOgmProcessor$createSessionFactory1383093778.deploy_0(Unknown Source)
    at io.quarkus.deployment.steps.Neo4jOgmProcessor$createSessionFactory1383093778.deploy(Unknown Source)
    ... 13 more
Caused by: java.lang.ClassNotFoundException: io.micrometer.context.ContextSnapshotFactory
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
    at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:565)
    at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:513)
    ... 29 more

build.gradle.kts依赖配置

dependencies {
    implementation(enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}"))
    implementation("io.quarkus:quarkus-arc")
    implementation("io.quarkus:quarkus-rest")
    implementation("io.quarkus:quarkus-config-yaml")
    implementation("io.quarkus:quarkus-rest-jackson")
    implementation("io.quarkus:quarkus-smallrye-health")

    // Quarkus Neo4j Extension
//    implementation("io.quarkiverse.neo4j:quarkus-neo4j:5.0.3")
//    implementation("io.micrometer:context-propagation:1.1.2")
//    implementation("org.conscrypt:conscrypt-openjdk:2.5.2")
    implementation("org.neo4j:neo4j-ogm-quarkus:3.11.0")
    // Lombok
    compileOnly("org.projectlombok:lombok:1.18.36")
    annotationProcessor("org.projectlombok:lombok:1.18.36")
    // MapStruct
    implementation("org.mapstruct:mapstruct:1.6.3")
    annotationProcessor("org.mapstruct:mapstruct-processor:1.6.3")


    // Test frameworks
    testImplementation("io.quarkus:quarkus-junit5")
    testImplementation("io.rest-assured:rest-assured")
}

复现步骤

  • 创建Quarkus新项目(Gradle+Kotlin)
  • 添加implementation("org.neo4j:neo4j-ogm-quarkus:3.11.0")依赖
  • 启动应用,观察启动报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 18:35:58