You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Payara 6 Micro启动时非法反射访问警告问题咨询

Payara Micro 6 + Java 11 反射警告问题解答

1. org.glassfish.pfl.basic库的作用

org.glassfish.pfl是Payara/GlassFish生态的核心基础工具库,主要提供反射操作封装、底层对象访问、类加载逻辑辅助等基础设施能力。其中Bridge类的设计目的是绕过Java的访问控制机制,调用JDK内部私有方法,以此实现序列化、类加载相关的底层功能。

2. 兼容性与适配状态

  • Java 11兼容性:警告的根源是Java 9引入的模块系统(JPMS)收紧了JDK内部API的访问权限。java.io.ObjectInputStream.latestUserDefinedLoader()是Java 8及更早版本的私有方法,Java 11中禁止外部通过反射直接调用该方法,因此触发非法访问警告。
  • Payara 6适配情况:Payara 6官方宣称支持Java 11,但pfl-basic.jar中的这段代码属于未适配Java 9+模块规则的遗留实现,是版本迭代中遗漏的适配点。当前仅为警告,不会影响服务运行,但后续Java版本可能直接阻断这类操作,导致服务启动失败。

3. 临时消除警告的方法

若要屏蔽该警告,可在Payara Micro启动命令中添加以下JVM参数:

--add-opens java.base/java.io=ALL-UNNAMED

该参数允许非模块化代码访问java.base模块下java.io包的内部成员,临时绕过JPMS的访问限制。


内容的提问来源于stack exchange,提问作者The 5th column mouse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 10:42:10