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

从Payara 5(5.52.0)迁移至Payara 6(6.2024.4)时的运行时异常求助

解决Payara 6升级后的CDI部署异常及注解处理警告

问题重现

将基于Payara Micro的Java应用从Payara 5 (5.52.0)升级到Payara 6 (6.2024.4)后,构建正常但运行时出现以下异常:

警告信息

[WARNING]  [Annotation-Framework] [tid: _ThreadID=1 _ThreadName=main] [timeMillis: 1715772499197] [levelValue: 900]
Failed to handle annotation [ @jakarta.resource.spi.ConfigProperty(ignore=false, description={},
 type=java.lang.String.class, defaultValue=“”, supportsDynamicUpdates=false, confidential=false) ] 
on class [ com.sun.gjc.spi.ManagedConnectionFactoryImpl ], reason : not a rar bundle context

严重异常

[SEVERE] [NCLS-CORE-00026] [javax.enterprise.system.core] [tid: _ThreadID=1 _ThreadName=main]
 [timeMillis: 1715786136811] [levelValue: 1000] [[
Exception during lifecycle processing
org.glassfish.deployment.common.DeploymentException: CDI deployment failure:WELD-001301: 
Annotation QualifierInstance {annotationClass=interface org.glassfish.api.admin.RestEndpoints, values=value=[Lorg.glassfish.api.admin.RestEndpoint;@e283976}} is not a qualifier – WELD-001301: 
Annotation QualifierInstance {annotationClass=interface org.glassfish.api.admin.RestEndpoints, values=value=[Lorg.glassfish.api.admin.RestEndpoint;@e283976}} is not a qualifier

解决方案

  • 统一Jakarta EE依赖版本:Payara 6基于Jakarta EE 10,确保项目所有依赖都使用jakarta.*包规范,排查是否残留javax.*包的依赖,避免跨版本包冲突。
  • 清理旧Payara依赖:检查pom.xml中是否引入了Payara 5相关依赖(如旧版本的glassfish-api、payara-micro),替换为Payara 6对应版本,保证所有容器相关依赖版本一致。
  • 修复RestEndpoints注解问题:
    • 若项目自定义了RestEndpoints注解,确保其被正确标记为@Qualifier,符合Jakarta CDI规范;
    • 若该注解来自Payara内部,执行mvn clean install -U清理Maven本地缓存,重新拉取Payara 6依赖包,避免缓存的旧版本文件干扰。
  • 处理资源适配器警告:
    • 检查项目中数据源或资源适配器的配置,替换旧的com.sun.gjc.spi相关类为Payara 6兼容的SPI实现;
    • 若使用自定义RAR包,确保其适配Jakarta EE 10规范,重新打包后再部署。

内容的提问来源于stack exchange,提问作者Adrian Kreator

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 00:05:13