netty异常处理


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:233)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at io.netty.util.internal.PlatformDependent0.<clinit>(PlatformDependent0.java:227)
at io.netty.util.internal.PlatformDependent.isAndroid(PlatformDependent.java:289)
at io.netty.util.internal.PlatformDependent.<clinit>(PlatformDependent.java:92)

 

2、分析:
  这是个 debug,并不是 error,一般对我们的系统运行不会产生影响,推测作者是想提醒我们 JDK 版本的编号可能对我们的存在潜在的风险,JDK 1.8 之前(含 JDK 1.8)使用了不安全的 API,自 JDK 9(含 JDK 9)已经废弃,提醒我们注意。
  针对这个现象我们通过设置 JVM 参数使此 debug 不再输出。


3、解决办法:
  在 Eclipse 的 VM 中加入如下参数:
    --add-opens java.base/jdk.internal.misc=ALL-UNNAMED
    -Dio.netty.tryReflectionSetAccessible=true
    --illegal-access=warn (选填)
  在 CentOS 中的启动方式为:
    nohup java -jar --add-opens java.base/jdk.internal.misc=ALL-UNNAMED -Dio.netty.tryReflectionSetAccessible=true 项目名 >> 日志地址 &

 

Eclipse jvm启动参数在哪设置

①打开Eclipse

②创建一个类,编写一段演示用的代码,在代码编辑区右键单击,依次选择【Run As】-->【Run Configurations】

③点击【(x)=Arguments】选项卡,

找到【VM arguments】,输入“-Xms128m -Xmx512m”后点击下面的【 Run】按钮运行程序即可

PS:参数含义说明

-Xms128m JVM启动后初始分配的堆内存为128M-Xmx512m JVM运行过程中允许分配的最大堆内存为512M,按需分配以上参数可以根据实际情况自行调整大小

长久性修改JVM启动参数
https://www.cnblogs.com/baxianhua/p/9504333.html

 

netty源码网站

http://docs.52im.net/extend/docs/src/netty4_1/

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM