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

GlassFish 7.0.11部署WAR包报错:UploadedFileCleanerListener不符合接口要求

GlassFish 7.0.11部署WAR包失败:UploadedFileCleanerListener监听器不兼容问题

问题场景

  • 环境:GlassFish 7.0.11
  • 操作:部署WAR包 sethma-3.0.0.war
  • 前置状态:domain1已成功启动,启动日志:
Waiting for domain1 to start ............
Waiting finished after 11,396 ms.
Successfully started the domain : domain1
domain  Location: C:\GLASSFISH_HOME\glassfish\domains\domain1
Log File: C:\GLASSFISH_HOME\glassfish\domains\domain1\logs\server.log
Admin Port: 4,848
Command start-domain executed successfully.
  • 部署命令:
C:\GLASSFISH_HOME\bin>asadmin deploy D:\hmis\target\sethma-3.0.0.war

错误日志

连续两次部署均失败,报错内容:

C:\GLASSFISH_HOME\bin>asadmin deploy D:\hmis\target\sethma-3.0.0.war
remote failure: Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: Unable to add listener of type: org.primefaces.webapp.UploadedFileCleanerListener, because it does not implement any of the required ServletContextListener, ServletContextAttributeListener, ServletRequestListener, ServletRequestAttributeListener, HttpSessionListener, or HttpSessionAttributeListener interfaces. Please see server.log for more details.
Command deploy failed.

C:\GLASSFISH_HOME\bin>asadmin deploy D:\hmis\target\sethma-3.0.0.war
remote failure: Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: Unable to add listener of type: org.primefaces.webapp.UploadedFileCleanerListener, because it does not implement any of the required ServletContextListener, ServletContextAttributeListener, ServletRequestListener, ServletRequestAttributeListener, HttpSessionListener, or HttpSessionAttributeListener interfaces. Please see server.log for more details.
Command deploy failed.

问题根源

org.primefaces.webapp.UploadedFileCleanerListener 未实现Servlet规范要求的任一监听器接口,导致GlassFish容器无法识别并添加该监听器,最终部署失败。

解决方案

  1. 版本适配:GlassFish 7基于Jakarta EE 10,需使用PrimeFaces 12及以上版本(该版本适配Jakarta EE规范),旧版本PrimeFaces的监听器类基于旧Servlet API,存在接口不兼容问题。
  2. 调整监听器配置:
    • 检查项目web.xml,若手动配置了UploadedFileCleanerListener,直接注释或删除该配置条目,重新打包WAR包。
    • 若依赖自动引入该监听器,排查Maven/Gradle依赖,排除低版本PrimeFaces,确保引入适配Jakarta EE的版本。
  3. 清理容器缓存:删除C:\GLASSFISH_HOME\glassfish\domains\domain1\osgi-cache和applications目录下的缓存文件,重启domain1后重新部署。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 22:27:48