开发者社区> 问答> 正文

钉钉开发 Stream 模式推送服务端接口的调用怎么办?

钉钉开发 Stream 模式推送服务端接口的调用,会用到app-stream-client这个依赖,这个jar包依赖了fastjson2,但是我项目依赖的其他jar包依赖的是
fastjson其他的版本,这样在钉钉回调时,会报java.lang.LinkageError: com/alibaba/fastjson2/JSONObject?

展开
收起
夹心789 2024-05-28 15:31:51 23 0
1 条回答
写回答
取消 提交回答
  • 遇到此类java.lang.LinkageError󠁪问题,通常是由于项目中存在Fastjson库的多个不同版本,导致JVM在加载类时出现冲突。为了解决这个问题,你可以尝试以下几种方法:1. 排除依赖冲突:在引入app-stream-client󠁪依赖时,可以尝试排除其自带的Fastjson2依赖,然后在你的项目中统一管理Fastjson的版本。以Maven为例,可以在pom.xml󠁪文件中添加如下配置排除冲突:
    your.group.id
    app-stream-client
    your.version


    com.alibaba
    fastjson2



    markup接着,手动添加你项目需要的Fastjson版本,确保整个项目中只有一份Fastjson库。1. 统一版本:如果你的项目中其他依赖确实需要使用Fastjson的不同版本,但这些版本之间兼容性良好,可以尝试通过 󠁪 来强制指定所有Fastjson依赖为同一版本。2. 类加载器隔离:如果上述方法不适用,考虑使用类加载器隔离技术(如OSGi框架、Spring Boot的@ConditionalOnClass等)来确保不同模块加载各自所需的Fastjson版本,但这通常较为复杂,且可能会引入更多维护问题。3. 升级或降级:检查Fastjson是否有新版本解决了兼容性问题,或者评估是否可以将所有依赖统一降级到一个稳定的版本上。请注意,具体操作时应依据你项目的实际情况和依赖管理工具(如Maven、Gradle)的语法进行调整。 ,此回答整理自钉群“钉钉开发者社区(互助群)”

    2024-05-28 16:37:02
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
钉钉小程序——为工作方式插上翅膀 立即下载
钉钉客户端自动化的应用 立即下载
使命必达 —— 钉钉企业级 消息服务的机遇与挑战 立即下载