PrimeFaces与Jakarta EE兼容性问题:GlassFish 6.5部署报错
PrimeFaces与Jakarta EE兼容性及部署异常解决方案
兼容性说明
PrimeFaces从版本11开始正式提供适配Jakarta EE的发行版本,完全兼容GlassFish 6.x(对应Jakarta EE 9/9.1规范)。你遇到的问题并非兼容性问题,而是依赖包选择错误导致的。
异常原因分析
你当前引入的primefaces-12.0.0-jakarta-sources.jar和primefaces-11.0.0-RC2-jakarta-sources.jar是源码包,仅包含Java源代码,不包含编译后的可执行类文件,所以容器无法找到org.primefaces.webapp.UploadedFileCleanerListener这个运行时必需的类。
解决步骤
- 移除项目中所有带
-sources后缀的PrimeFaces Jakarta包 - 下载对应版本的运行时Jar包:
- 针对PrimeFaces 12.0.0:下载
primefaces-12.0.0-jakarta.jar - 针对PrimeFaces 11:建议使用正式版
primefaces-11.0.0-jakarta.jar而非RC测试版
- 针对PrimeFaces 12.0.0:下载
- 将下载的运行时Jar包放入项目的
WEB-INF/lib目录 - 重新打包并部署应用到GlassFish 6.5
依赖管理工具配置示例(可选)
如果使用Maven管理依赖,可直接在pom.xml中添加以下配置(以12.0.0版本为例):
<dependency> <groupId>org.primefaces</groupId> <artifactId>primefaces</artifactId> <version>12.0.0</version> <classifier>jakarta</classifier> </dependency>
如果使用Gradle:
implementation 'org.primefaces:primefaces:12.0.0:jakarta'
内容的提问来源于stack exchange,提问作者Alex_timin
相关产品推荐
相关产品推荐

