首页 > 其他分享 >一个关于用netty的小错误反思

一个关于用netty的小错误反思

时间:2023-11-25 23:44:19浏览次数:40  
标签:netty java nio 错误 NioEventLoopGroup io 反思 channel

一个关于用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,java,nio,错误,NioEventLoopGroup,io,反思,channel
From: https://www.cnblogs.com/seamount3/p/17856360.html

相关文章

  • Centos7 系统 /etc/fstab配置文件中文件系统类型错误导致进入紧急模式如何解决
    在格式化分区是我选择的ext4文件格式对分区sdc2进行了格式化,但是在写入配置文件是选择的文件格式是xfs,这导致了我的虚拟机进入系统时直接进入了紧急模式输入root密码进行维护,可以发现出现了命令窗,由于知道错误原因,所以可以直接从根源入手打开配置文件vim/etc/fstab我对设备......
  • 87th 2023/11/25 一次反思
    打完NOIP后,感觉迷茫了一段时间因为自己真的挺菜的,去年没进复赛,还没什么感觉,一度的自我感觉良好今年去打了,很难受,CSP-S就因为一头扎在T2上,导致T3的大模拟没有去碰然后NOIP又玩了一次T2,其实这题是真的能切,思路也挺简单,但赛时没有想到,对这种套路并没有很熟悉但是想去打80分也没有......
  • 对 .NET程序2G虚拟地址紧张崩溃 的最后一次反思
    一:背景1.讲故事最近接连遇到了几起2G虚拟地址紧张导致的程序崩溃,基本上90%都集中在医疗行业,真的很无语,他们用的都是一些上古的XP,Windows7x86,我也知道技术人很难也基本无法推动硬件系统和设备的升级,这里蕴含了巨大的人情世故。写这一篇的目的是想系统化的整理一下如何配......
  • P2580 于是他错误的点名开始了
    于是他错误的点名开始了题目背景XS中学化学竞赛组教练是一个酷爱炉石的人。他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次,然后正好被路过的校长发现了然后就是一顿欧拉欧拉欧拉(详情请见已结束比赛CON900)。题目描述这之后校长任命你为特派探员,每天记录他的点......
  • Ossclient无法自动装配和包aliyun-oss-spring-boot-starter导入错误
    无法导包 aliyun-oss-spring-boot-starter 解决办法:把 aliyun-oss-spring-boot-starter换成即可<dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>2.8.3......
  • netty服务端加解密
    参考链接:https://www.cnblogs.com/silyvin/articles/11827030.html一、解密1、自定义解密类importio.netty.buffer.ByteBuf;importio.netty.buffer.Unpooled;importio.netty.channel.ChannelHandlerContext;importio.netty.handler.codec.ByteToMessageDecoder;impor......
  • H5+ plus.barcode.Barcode 扫码控件 返回数据错误
    创建扫码控件扫描比较复杂的条形码时返回数据错误,扫到的总是一些不相干的数据,极小概率可以扫到正确的数据,代码中已经配置条码类型过滤器,filters,代码和条码如下scan=newplus.barcode.Barcode('bcid',["plus.barcode.CODE128","plus.barcode.QR"]);原......
  • C++程序编译常见错误与评测各个状态含义
    编译常见错误提示1.[Error]expected';'before'cout'。在cout前面,缺少一个分号。2.[Error]'b'wasnotdeclaredinthisscope。未定义变量名b。3.[Error]stray'\243'inprogram\stray'\273'inprogram。不可识别的非法字符。4.[Error]ldretu......
  • 引发C++异常的常见原因(一)从报错地址到错误症状
    在进行C++软件开发的过程中,会遇到很多问题,网上差不到,或者查到了也没什么信息可以用,所以这里想到了就将一些常见的问题放在一起,归纳整理一下。本文主要的内容来源于CSDN的大佬文章:https://blog.csdn.net/chenlycly/article/details/125529931,我主要是做个笔记常见问题1.变量未......
  • socket 错误码
     1#defineEPERM1//Operationnotpermitted操作不允许2#defineENOENT2//Nosuchfileordirectory文件/路径不存在3#defineESRCH3//Nosuchprocess进程不存在4#defineEINTR4//Interruptedsystemcall中断的系统调用5#defineEIO5//I/Oerror......