Tomcat9 在 OpenJdk11 中使用安全管理器响应缓慢

Posted

技术标签:

【中文标题】Tomcat9 在 OpenJdk11 中使用安全管理器响应缓慢【英文标题】:Tomcat9 slow response with security manager in OpenJdk11 【发布时间】:2019-11-28 03:04:41 【问题描述】:

我们在 tomcat9 的 java 选项中添加了 -Djava.security.manager 参数来启用安全管理器。 Tomcat 运行时没有任何问题,但是当我尝试执行某些操作时,需要 9-10 分钟来处理该操作(登录、注销已部署的应用程序或直接访问其中一个 servlet),并且日志文件中也没有错误。如果我删除此参数,则没有延迟。

此问题仅在 java11 中可见。在 Java 8 之前它可以正常工作,没有任何问题。

例如安全管理器 + tomcat9+ java 11= 执行任何操作都很慢

安全管理器 + tomcat9+ java 8= 按预期工作

【问题讨论】:

您是否尝试过进行线程转储以查看卡在哪里? 【参考方案1】:

添加权限 java.lang.RuntimePermission "accessSystemModules";在 catalina.policy 解决问题,因为它需要 defineClassInPackage.java.* 权限。 在 java 8 中,它可以在不提供 accessSystemModule 的情况下工作,但在 java 11 中是必需的

【讨论】:

以上是关于Tomcat9 在 OpenJdk11 中使用安全管理器响应缓慢的主要内容,如果未能解决你的问题,请参考以下文章

Centos8安装tomcat9以及常见用法

javax.imageio.IIOException:无法在 Tomcat 9、OpenJDK 11 和 Geoserver 中创建 ImageInputStream

记录centos安装tomcat9

OpenJDK 11 的来源(包括错误/安全修复版本)

Rocky8.5安装tomcat9(jdk使用jdk17版)

linux安装tomcat9