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

Liferay 7.4.3.61升级后含Blob字段的Service Builder启动失败

Liferay 7.4.3.61升级后带Blob字段的Service Builder启动失败排查方案

首先明确:Blob类型在Liferay 7.4.3.61仍然被支持,你的问题并非功能移除,而是升级后的依赖冲突、缓存残留或配置遗漏导致。

排查步骤:

  1. 校验service.xml配置
    确认Blob字段的定义格式正确,无拼写或语法错误,示例:

    <entity name="YourEntity" local-service="true" remote-service="false">
        <column name="id" type="long" primary="true" />
        <column name="fileContent" type="Blob" />
    </entity>
    
  2. 检查构建依赖
    升级后Liferay的依赖版本可能调整,确保你的build.gradle(或pom.xml)包含Blob处理所需的核心依赖:

    // Gradle示例,按需调整
    dependencies {
        compileOnly group: "com.liferay.portal", name: "com.liferay.portal.kernel"
        compileOnly group: "com.liferay", name: "com.liferay.petra.sql.dsl"
        compileOnly group: "javax.sql", name: "javax.sql-api"
        compileOnly group: "mysql", name: "mysql-connector-java" // 对应你的数据库驱动
    }
    
  3. 清理构建缓存
    旧缓存会导致类路径冲突,执行清理后重新构建:

    • Gradle:./gradlew clean build
    • Maven:mvn clean install
  4. 确认模块包导入
    在bnd.bnd文件中,确保导入了java.sql包(Blob属于这个包):

    Import-Package: \
        java.sql,\
        javax.sql,\
        *
    
  5. 定位具体缺失类
    从错误日志中提取具体的缺失类名:

    • 如果是java.sql.Blob:说明模块无法访问JDK的SQL包,重点检查bnd的Import-Package配置
    • 如果是Liferay内部类:查看Liferay 7.4.3.61的Release Notes,确认是否有Service Builder的API重构,调整代码适配新类名
  6. 临时验证
    若业务允许,将Blob字段替换为String或Clob,重新构建启动。如果能正常运行,说明问题确实集中在Blob的依赖/配置上,再针对性排查上述步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 03:41:42