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

Liferay 7.4-ga107导入PortalUUID类报错的解决求助

Liferay 7.4 GA107 留言板应用部署时PortalUUID依赖错误解决方法

问题描述

我在IntelliJ中开发Liferay portal-7.4-ga107的留言板训练应用,严格遵循官方教程操作,重复3次流程后,在完成"Integrating the Back-end"步骤部署模块/portlet时,始终遇到编译错误:

error: cannot find symbol
import com.liferay.portal.kernel.uuid.PortalUUID;
^
symbol: class PortalUUID
location: package com.liferay.portal.kernel.uuid

该错误来自自动生成的持久化类中的导入语句:

import com.liferay.portal.kernel.uuid.PortalUUID; // IDE标记为红色

在持久化类中,PortalUUID仅用于两处:

@Reference
private PortalUUID _portalUUID;

以及:

String uuid = _portalUUID.generate();

使用环境:JDK 8、Gradle 6.9.2。尝试过将PortalUUID替换为PortalUUIDUtil,代码无编译报错,但部署guestbook-web模块后,门户中未显示该portlet;尝试调用PortalUUIDUtil.getPortalUUID();时,IDE提示该方法不存在。

解决步骤

1. 替换为Liferay 7.4支持的UUID生成API

Liferay 7.4 GA107中,com.liferay.portal.kernel.uuid.PortalUUID已被移除,正确的UUID生成工具类是com.liferay.portal.kernel.util.UuidUtil。

2. 修改持久化类代码

按以下步骤调整代码:

  • 删除import com.liferay.portal.kernel.uuid.PortalUUID;导入语句
  • 删除@Reference注解和private PortalUUID _portalUUID;字段
  • 将UUID生成代码替换为:
String uuid = UuidUtil.generate();
  • 添加正确的导入:
import com.liferay.portal.kernel.util.UuidUtil;

3. 重新构建部署

在项目根目录执行Gradle命令完成构建部署:

./gradlew clean build deploy

4. 排查portlet未显示问题

如果替换后portlet仍不显示,检查:

  • 确认guestbook-web模块的liferay-portlet.xml/portlet.xml配置正确,portlet的显示名称、实例化属性设置无误
  • 查看Liferay控制台日志(控制面板 → 配置 → 服务器管理 → 日志),排查部署过程中的报错
  • 确认已在门户页面添加该portlet(添加 → 小部件 → [应用分类]中查找留言板portlet)

内容的提问来源于stack exchange,提问作者Gonzalo Rabasa San Martín

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:42:34