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

JBPM项目修改REST请求代码后重构无法读取properties报invalid block type错误

问题根因初步判断

你遇到的java.util.zip.ZipException: invalid block type本质上是JVM读取jar包的时候识别到包结构损坏,不是environment.properties文件不存在——如果真的找不到文件,getResourceAsStream会返回null,触发的是空指针异常,而不是zip解压相关的报错。你看到的"找不到属性文件"的日志是你自己catch所有异常后打印的通用提示,和实际错误原因不符。


可能和pom.xml相关的诱因

  • maven-assembly-plugin和maven-jar-plugin执行顺序冲突:你的pom里同时配置了maven-jar-plugin(默认打普通jar)和maven-assembly-plugin(package阶段打合并依赖的jar,且配置了appendAssemblyId=false直接覆盖原jar),如果两个插件执行过程中出现文件写入冲突,很容易导致最终生成的jar包头/压缩块损坏。可以先把assembly插件临时注释掉重新构建,看报错是否消失。
  • 资源文件过滤配置异常:你给src/main/resources配置的是filtering=false本身没问题,但如果你的environment.properties里有特殊的二进制字符、或者在构建过程中被其他插件(比如maven-remote-resources-plugin)意外修改了编码,也可能导致文件在jar包里的存储块损坏。
  • templating-maven-plugin和maven-compiler-plugin的生成目录冲突:你把sourceDirectory指向了自动生成的代码目录,如果编译过程中临时文件写入到target/classes下和资源文件的写入出现并发冲突,也可能导致jar打包异常。

和pom无关的其他常见诱因

  • 本地maven仓库缓存损坏:你新增的代码没有涉及任何资源读取逻辑的修改,很可能是这次clean构建的时候,依赖的某个第三方jar包下载的时候损坏了,直接删一下本地maven仓库里对应JBPM相关依赖的目录,重新构建下载即可。
  • Eclipse构建缓存冲突:Eclipse的增量构建和maven的命令行构建经常出现缓存不一致的情况,先关掉Eclipse,手动删除项目根目录下的target文件夹,再用mvn clean package命令行单独构建,看生成的jar包是否能正常解压(直接用压缩软件打开看里面的environment.properties能不能正常打开查看内容)。
  • Jar包传输/部署过程损坏:如果构建出来的本地jar包能正常打开,那就是你部署到JBPM容器的过程中文件传输出现了字节丢失,重新传一遍即可。
  • JDK版本兼容性问题:你指定的编译版本是JDK8,如果运行JBPM的容器用的是更低版本的JDK,或者不同厂商的JDK(比如OpenJDK和OracleJDK的zip解析逻辑有微小差异),也可能出现这类解压异常。

临时验证方法

你可以先在读取资源的代码里加一行校验,确认是不是jar本身的问题:

try (final InputStream input = Utils.class.getClassLoader().getResourceAsStream("environment.properties")) {
    // 先打印输入流的实现类,如果是JarURLConnection的输入流基本就是jar包本身损坏
    LOGGER.debug("Input stream type: {}", input.getClass().getName());
    // 先读几个字节测试,看能不能正常读,不要直接加载到Properties
    byte[] test = new byte[10];
    int read = input.read(test);
    LOGGER.debug("First 10 bytes read: {}", read);
    properties.load(input);
} catch (Exception e) {
    LOGGER.error("Load properties failed", e); // 直接打印完整异常,不要自己写误导性的提示
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 13:39:02