当前位置: 首页 > news >正文

Redisson最新版本(3.50.0左右)启动时提示Netty的某些类找不到

文章目录

  • 一、写在前面
  • 二、解决方案
    • 1、解决方案
    • 2、一劳永逸
    • 3、确定redisson依赖netty的版本

一、写在前面

Redisson最新版本,大概3.47.0,在JDK8环境下(实测JDK17也一样)会提示Netty的某些类找不到:

Exception in thread "main" java.lang.NoClassDefFoundError: io/netty/channel/unix/DomainSocketChannelat org.redisson.client.RedisClient.createBootstrap(RedisClient.java:142)at org.redisson.client.RedisClient.<init>(RedisClient.java:127)at org.redisson.client.RedisClient.create(RedisClient.java:84)at org.redisson.connection.MasterSlaveConnectionManager.createClient(MasterSlaveConnectionManager.java:341)at org.redisson.connection.MasterSlaveConnectionManager.connectToNode(MasterSlaveConnectionManager.java:121)at org.redisson.connection.MasterSlaveConnectionManager.connectToNode(MasterSlaveConnectionManager.java:108)at org.redisson.connection.ClusterConnectionManager.doConnect(ClusterConnectionManager.java:97)at org.redisson.connection.MasterSlaveConnectionManager.connect(MasterSlaveConnectionManager.java:188)at org.redisson.connection.ConnectionManager.create(ConnectionManager.java:98)at org.redisson.Redisson.<init>(Redisson.java:76)at org.redisson.Redisson.create(Redisson.java:119)at com.demo.springbootdemo.SpringbootDemoApplication.main(SpringbootDemoApplication.java:25)
Caused by: java.lang.ClassNotFoundException: io.netty.channel.unix.DomainSocketChannelat java.net.URLClassLoader.findClass(URLClassLoader.java:387)at java.lang.ClassLoader.loadClass(ClassLoader.java:418)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)at java.lang.ClassLoader.loadClass(ClassLoader.java:351)... 12 more

二、解决方案

1、解决方案

是因为缺少 Netty 相关的 Unix 域套接字依赖包。

Netty 的 Unix 域套接字支持位于独立的 netty-transport-native-unix-common 包中,而 Redisson 某些功能(如对 Unix 域套接字的支持)依赖于此包。解决方法是在项目依赖中添加对应的 Netty 原生传输包。
如果是 Maven 项目,可添加以下依赖:

<dependency><groupId>io.netty</groupId><artifactId>netty-transport-native-unix-common</artifactId><version>4.1.77.Final</version> <!-- 版本需与Redisson依赖的Netty版本匹配 -->
</dependency>

如果是 Gradle 项目,可添加:

implementation 'io.netty:netty-transport-native-unix-common:4.1.77.Final'

注意:Netty 版本需要与 Redisson 3.50.0 所依赖的 Netty 版本保持一致(Redisson 3.50.0 通常依赖 Netty 4.1.77 系列),建议通过查看项目依赖树确认具体版本后再添加,避免版本冲突。

2、一劳永逸

如果报错不是提示这个错误,而是别的类找不到,可以考虑直接引入netty-all

        <dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId><version>4.1.77.Final</version></dependency>

一定要注意netty的版本!!!

3、确定redisson依赖netty的版本

在这里插入图片描述

http://www.xdnf.cn/news/1335169.html

相关文章:

  • VR交通安全学习机-VR交通普法体验馆方案
  • 从防抖节流到链表树:编程世界中的抽象优化艺术
  • C++智能指针详解:告别内存泄漏,拥抱安全高效
  • Flask高效数据库操作指南
  • C++ MFC/BCG编程:文件对话框(CFileDialog、CFolderPickerDialog)
  • CFBench评测
  • (一)关于步进电机的FOC控制
  • DeepSeek大模型如何重塑AI Agent?从技术突破到行业落地
  • 意象框架:连接感知与认知的统一信息结构分析——基于上古汉语同源词意义系统的词源学与认知语言学探索
  • (认识异常)
  • SED项目复现学习实录
  • JSON::Value 功能详解:从三目运算符到高级用法
  • Git Commit 提交信息标准格式
  • 48 C++ STL模板库17-容器9-关联容器-映射(map)多重映射(multimap)
  • C++进阶-----C++11
  • 【数据结构】线性表——顺序表
  • Linux Shell 常用操作与脚本示例详解
  • CAMEL-Task1-CAMEL环境配置及你的第一个Agent
  • rsync + inotify 数据实时同步
  • 吴恩达 Machine Learning(Class 3)
  • Spring Boot 实战:从项目搭建到部署优化
  • (Python)[特殊字符] 基于Flask/FastAPI的RESTful API服务 + 数据库 + 缓存 + 简单前端 (Python项目)
  • Altium Designer 22使用笔记(8)---PCB电气约束设置
  • PyTorch API 3 - distributed
  • Flink双流join
  • 三极管单电源供电中电阻关系的理解
  • Non-stationary Diffusion For Probabilistic Time Series Forecasting论文阅读笔记
  • (第二十五节课内容总结)
  • 【数据结构】直接选择排序
  • 基于卷积神经网络的多输出数据回归预测CNN(多输入多输出)