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

使用Ktor开发Kotlin服务端启动报JsonDeserializer类找不到错误

问题根因

该java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/JsonDeserializer错误是运行时类路径缺失Jackson Databind依赖导致:Auth0官方的JWT库内部依赖Jackson完成JSON序列化/反序列化逻辑,你当前项目没有引入对应的传递依赖,或存在依赖版本冲突。

排查解决步骤
  • 第一步:补全缺失的Jackson依赖,配置示例如下:
    Gradle Kotlin DSL 配置:
    // 引入Auth0 JWT依赖
    implementation("com.auth0:java-jwt:4.4.0")
    // 补全Jackson Databind依赖,版本可与Ktor内置Jackson版本保持一致避免冲突
    implementation("com.fasterxml.jackson.core:jackson-databind:2.15.2")
    
    Maven 配置:
    <dependency>
        <groupId>com.auth0</groupId>
        <artifactId>java-jwt</artifactId>
        <version>4.4.0</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.15.2</version>
    </dependency>
    
  • 第二步:排查依赖版本冲突。如果项目中已经引入了其他版本的Jackson,可执行./gradlew dependencies(Gradle)或mvn dependency:tree(Maven)查看Jackson依赖的版本树,统一所有Jackson相关依赖的版本即可。
  • 第三步:如果Ktor项目已启用Jackson序列化插件,可直接复用Ktor内置的Jackson版本,不需要额外指定版本,进一步避免版本冲突:
    implementation("io.ktor:ktor-serialization-jackson:$ktor_version")
    
  • 第四步:如果是打包为FatJar后运行时报错,检查打包插件的配置,确保所有runtime范围的依赖都被打入最终产物,Gradle ShadowJar、Maven Shade插件都需要配置正确的合并规则,避免自动忽略三方依赖。
  • 第五步:修改完依赖配置后执行clean操作清理旧构建缓存,再重新构建运行项目。

内容的提问来源于stack exchange,提问作者Law.Dev9

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:54:04