文章信息

CentOS服务器jdk8升级到openjdk13

发布时间:『 2019-12-02 11:50』  文章类别:系统运维  阅读(3717) 评论(1)

终究还是要升级的,最近给网站服务器jdk升级到了13,主要原因还是最新的jdk实现了JSSE SSL/TLS安全套接字,可以在Tomcat上直接调用JSSE SSL/TLS安全套接字的实现升级成HTTP2协议连接传输通信。具体细节另说,后续补充Tomcat升级HTTP2协议连接教程。

升级完成后发现网站的全文检索发现报错,通过抓取到的错误日志如下:

Caused by: java.lang.IllegalAccessException: class org.apache.lucene.store.MMapDirectory$2$1 cannot access class jdk.internal.ref.Cleaner (in module java.base) because module java.base does not export jdk.internal.ref to unnamed module @2c99419f
    at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:376)
    at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:642)
    at java.base/java.lang.reflect.Method.invoke(Method.java:559)
    at org.apache.lucene.store.MMapDirectory$2$1.run(MMapDirectory.java:322)
    at org.apache.lucene.store.MMapDirectory$2$1.run(MMapDirectory.java:314)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:554)
    at org.apache.lucene.store.MMapDirectory$2.freeBuffer(MMapDirectory.java:314)
    ... 71 more

大概的意思是jdk13的java.base模块未将jdk.internal.ref导出到未命名的模块,从而没能正常加载 jdk.internal.ref.Cleaner类。

可以通过配置jdk启动参数解决这个问题,我们修改Tomcat的bin目录下的catalina.sh文件,为JAVA_OPTS增加如下配置:

JAVA_OPTS="$JAVA_OPTS --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED"

重启Tomcat服务,查询Tomcat进程看看相关参数是否已配置成功:

[tomcat@** tomcat9]# ps -ef|grep tomcat
tomcat      ****     1 35 20:38 pts/0    00:00:19 **/tomcat9/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED **

发现tomcat进程打印的日志中已正确加载该参数,全文检索报错的问题至此得到解决。查询网上有资料说将lucene升级到版本6亦可解决这个问题,留存待测吧。


参考资料:

1.Java 9 options --add-exports vs. -XaddExports not recognized - Stack Overflow


关键字:  jdk13  lucene  jdk模块化  tomcat
评论信息
1楼    106.121.180.183:我也遇到过这个问题,一直没解决,谢谢楼主。      [ 2019-12-10 10:45 ]
发表评论
验证码: 
当前时间
小主信息

愿历尽千帆,归来仍少年。
3D标签云

Anything in here will be replaced on browsers that support the canvas element

友情链接

Copyright ©2017-2024 uzen.zone
湘ICP备17013178号-3