一个关于用netty的小错误反思
一个关于用netty的小认知
在使用netty时,观看了黑马的netty网课,没想就直接用他的依赖了
依赖如下
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.39.Final</version>
</dependency>
不过幸运的是,我意识到了老师的没有问题,而我的出了问题,在代码相同性排查后,我就感觉到是可能是java版本的问题
我是使用jdk17而老师的是jdk8
当然这里就水落石出了
报错如下:
java.lang.UnsupportedOperationException: Reflective setAccessible(true) disabled
at io.netty.util.internal.ReflectionUtil.trySetAccessible(ReflectionUtil.java:31)
at io.netty.util.internal.PlatformDependent0$4.run(PlatformDependent0.java:224)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at io.netty.util.internal.PlatformDependent0.<clinit>(PlatformDependent0.java:218)
at io.netty.util.internal.PlatformDependent.isAndroid(PlatformDependent.java:272)
at io.netty.util.internal.PlatformDependent.<clinit>(PlatformDependent.java:92)
at io.netty.channel.nio.NioEventLoop.newTaskQueue0(NioEventLoop.java:284)
at io.netty.channel.nio.NioEventLoop.newTaskQueue(NioEventLoop.java:155)
at io.netty.channel.nio.NioEventLoop.<init>(NioEventLoop.java:137)
at io.netty.channel.nio.NioEventLoopGroup.newChild(NioEventLoopGroup.java:138)
at io.netty.channel.nio.NioEventLoopGroup.newChild(NioEventLoopGroup.java:37)
at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:84)
at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:58)
at io.netty.channel.MultithreadEventLoopGroup.<init>(MultithreadEventLoopGroup.java:52)
at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:88)
at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:83)
at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:64)
at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:52)
at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:44)
at netty.helloworld.Server.main(Server.java:22)
23:33:58.458 [main] DEBUG io.netty.util.internal.PlatformDependent0 - java.nio.Bits.unaligned: available, true
23:33:58.459 [main] DEBUG io.netty.util.internal.PlatformDependent0 - jdk.internal.misc.Unsafe.allocateUninitializedArray(int): unavailable
java.lang.IllegalAccessException: class io.netty.util.internal.PlatformDependent0$6 cannot access class jdk.internal.misc.Unsafe (in module java.base) because module java.base does not export jdk.internal.misc to unnamed module @7c0e2abd
at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:392)
at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:674)
at java.base/java.lang.reflect.Method.invoke(Method.java:560)
at io.netty.util.internal.PlatformDependent0$6.run(PlatformDependent0.java:334)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at io.netty.util.internal.PlatformDependent0.<clinit>(PlatformDependent0.java:325)
at io.netty.util.internal.PlatformDependent.isAndroid(PlatformDependent.java:272)
at io.netty.util.internal.PlatformDependent.<clinit>(PlatformDependent.java:92)
at io.netty.channel.nio.NioEventLoop.newTaskQueue0(NioEventLoop.java:284)
at io.netty.channel.nio.NioEventLoop.newTaskQueue(NioEventLoop.java:155)
at io.netty.channel.nio.NioEventLoop.<init>(NioEventLoop.java:137)
at io.netty.channel.nio.NioEventLoopGroup.newChild(NioEventLoopGroup.java:138)
at io.netty.channel.nio.NioEventLoopGroup.newChild(NioEventLoopGroup.java:37)
at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:84)
at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:58)
at io.netty.channel.MultithreadEventLoopGroup.<init>(MultithreadEventLoopGroup.java:52)
at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:88)
at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:83)
at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:64)
at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:52)
at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:44)
at netty.helloworld.Server.main(Server.java:22)
我又突然很想了解这是怎么问题?
总不能之后换了jdk17我就不会了吧(目前状态未意识到版本未一致的问题)
然后查了一下是jdk9后对安全策略之类的进行了更严格的限制之类的
大家通过查找也能查到
然后呢?有了一个新的报错
于是才意识到没准是版本不一致的问题
一个关于用netty的小错误反思的更多相关文章
- 简明Python中的一个小错误
最近在学Python,先看的是<Python基础教程>,后来经别人推荐,感觉网络上的<简明Python教程>也挺好的,在里面发现一个小错误. 网址如下:http://sebug ...
- C编程之 一个容易忽视但是十分严重的小错误
while(...) { ...if(a=b) continue; } 调试时就一直执行continue.一直找不到原因,后面才发现是少一个"=": 还有一次就是也是在if中,if ...
- 记在thinkPHP中一个创建模型的小错误
在创建好模型以后,访问说没有该方法,如图 看代码 class ManagerModel { //put your code here function checkDenglu($name,$pwd){ ...
- Netty 聊天小程序
这节讲解基于 Netty 快速实现一个聊天小程序. 一.服务端 1. SimpleChatServerHandler(处理器类) 该类主要实现了接收来自客户端的消息并转发给其他客户端. /** * 服 ...
- 用c#写的一个局域网聊天客户端 类似小飞鸽
用c#写的一个局域网聊天客户端 类似小飞鸽 摘自: http://www.cnblogs.com/yyl8781697/archive/2012/12/07/csharp-socket-udp.htm ...
- (转)Web开发中最致命的小错误
Web开发中最致命的小错误 现在,有越来越多所谓的“教程”来帮助我们提高网站的易用性.本文收集了一些在 Web 开发中容易出错和被忽略的小问题,并且提供了参考的解决方案,以便于帮助 Web 开发者更好 ...
- 一个基于ES5的vue小demo
由于现在很多vue项目都是基于ES6开发的,而我学vue的时候大多是看vue官网的API,是基于ES5的,所以对于刚接触项目的我来说要转变为项目的模块化写法确实有些挑战.因此,我打算先做一个基于ES5 ...
- CSS网页布局中易犯的30个小错误
即使是CSS高手,也难免在书写CSS代码的时候出一些小错误,或者说,任何一种代码都是如此.小错误却往往造成大问题,浪费很多无辜的时间来调试和排错.查看下面这份CSS网页布局中易犯的10个小错误,努力的 ...
- Java中用FileInputStream和FileOutputStream读写txt文件,文件内容乱码的问题,另附循环代码小错误
乱码问题大概就是编码格式不一样,搜了很多都是这么说的,修改编码解决乱码问题链接: https://blog.csdn.net/weixin_42496466/article/details/81189 ...
- Web前端开发中的小错误
Web前端开发中的小错误 错误1:表单的label标签跟表单字段没有关联 利用“for”属性允许用户单击label也可以选中表单中的内容.这可以扩大复选框和单选框的点击区域,非常实用. 错误2:log ...
随机推荐
- Vue大数据可视化(大屏展示)解决方案
DataV:组件库基于Vue (React版) ,主要用于构建大屏(全屏)数据展示页面即数据可视化 官网地址: http://datav.jiaminghi.com/guide/#%E7%94%A8% ...
- 项目API请求模块封装
- freeswitch查看所有通道变量
概述 freeswitch 是一款好用的开源软交换平台. 实际应用中,我们经常需要对fs中的通道变量操作,包括设置和获取,set & get. 但是,fs中有众多的内部定义通道变量,也有外部传 ...
- SV Interface and Program
内容 验证平台与待测设计的连接 VTB driver和dut之间的连线通过tb中声明wire连线 通过例化dut的方式进行连接 A module的input连接到B module的output SVT ...
- [转帖]京东大佬细说:Nginx反向代理时保持长连接,看完直呼"学到了!"
https://mp.weixin.qq.com/s?__biz=MzU1MzE2NzIzMg==&mid=2247488405&idx=1&sn=7081ff4e0ac1de ...
- [转帖]OceanBase 中租户管理
https://zhuanlan.zhihu.com/p/464504887 概述 租户的概念类似于传统数据库的数据库实例.租户也叫实例,拥有一定的资源能力(如CPU.内存和空间).租户下可以建立数据 ...
- [转帖]oracle 审计日志清理
https://www.cnblogs.com/bangchen/p/7268086.html --进入审计日志目录: cd $ORACLE_BASE/admin/$ORACLE_SID/adum ...
- [转帖]MySQL联合索引(复合索引)
Mysql联合唯一索引添加相同数据插入报错 联合索引在两个字段都存在唯一,将报错. 1.添加联合索引 alter table "表名" add unique index(`字段1` ...
- [转帖]Linux三剑客之sed的初阶使用
https://www.jianshu.com/p/ceea435635a2 大多数情况下,对于文件内容的修改需要依赖交互式的软件来实现,例如vim修改文件的内容则是依赖光标的移动和修改操作来完成对文 ...
- [转帖]nginx配置默认首页(index.html index.htm)全流程(包含遇到问题的解决)
https://www.cnblogs.com/tujietg/p/10753041.html#:~:text=%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%EF%BC%9 ...