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