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

PrimeFaces应用迁移至Jakarta EE服务器编译部署失败的原因与解决

问题原因

你使用的PrimeFaces 11.0.0是基于Java EE(javax.)生态开发的版本,它的内部代码硬依赖javax包下的JSF、Servlet等API类。而你的目标运行时Payara Micro 5.2022.4已切换到Jakarta EE(jakarta.)命名空间,环境中仅提供jakarta开头的API类,因此PrimeFaces 11在加载时找不到javax包下的类,抛出ClassNotFoundException。

解决方案

将PrimeFaces依赖升级到支持Jakarta EE的版本:
PrimeFaces从版本12开始全面适配Jakarta EE(jakarta.*)命名空间,你可以根据Payara Micro 5的Jakarta EE版本选择合适的PrimeFaces版本:

  • Payara Micro 5对应Jakarta EE 8,推荐使用PrimeFaces 12.x(12.0.0及以上)
  • 若需要更高特性,也可升级到PrimeFaces 13.x或14.x(需确认与Payara Micro 5的兼容性)

修改后的Maven依赖配置如下:

<dependency>
    <groupId>org.primefaces</groupId>
    <artifactId>primefaces</artifactId>
    <!-- 替换为支持Jakarta EE的版本,示例为12.0.0 -->
    <version>12.0.0</version>
</dependency>

额外注意事项:

  • 确认项目中所有其他依赖也已切换到jakarta.*版本,避免混合javax和jakarta的API依赖
  • 若Payara Micro已内置Jakarta EE API,无需额外引入javax.faces或jakarta.faces的API依赖,防止版本冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 07:45:51