Liquibase - ZipFile.java 中的 FileNotFoundException
Posted
技术标签:
【中文标题】Liquibase - ZipFile.java 中的 FileNotFoundException【英文标题】:Liquibase - FileNotFoundException at ZipFile.java 【发布时间】:2022-01-23 16:17:09 【问题描述】:在 Jenkins 中运行测试时,有时 Liquibase 会失败并显示 FileNotFoundException
。在本地运行时不会出现这种情况。
奇怪的是,这个错误并不是每次构建都会发生。
例外
java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:132
Caused by: liquibase.exception.UnexpectedLiquibaseException at ServiceLocator.java:129
Caused by: java.io.FileNotFoundException at ZipFile.java:-2
服务定位器
try
manifests = resourceAccessor.getResourcesAsStream("META-INF/MANIFEST.MF");
if (manifests != null)
for (InputStream is : manifests)
Manifest manifest = new Manifest(is);
String attributes = StringUtils.trimToNull(manifest.getMainAttributes().getValue("Liquibase-Package"));
if (attributes != null)
for (Object value : attributes.split(","))
addPackageToScan(value.toString());
is.close();
catch (IOException e)
throw new UnexpectedLiquibaseException(e);
我们正在使用Liquibase 3.8.1
。
这可能是什么原因造成的?
【问题讨论】:
你在云端运行测试用例吗? @RaushanKumar 是的,我相信。这会如何影响它? @RaushanKumar 这是一个 Amazon EKS 集群。 【参考方案1】:我认为这个问题是由于 AWS 上的 log4j 安全补丁更新而发生的。 我不确定它对 Liquibase 有何影响。
临时解决办法是卸载补丁并安装另一个 java 版本。
yum 删除 log4j-cve-2021-44228-hotpatch.noarch 百胜安装 java-11-openjdk-11.0.12.0.7-0.amzn2.0.2.x86_64
【讨论】:
以上是关于Liquibase - ZipFile.java 中的 FileNotFoundException的主要内容,如果未能解决你的问题,请参考以下文章
Unhandled event loop exception GC overhead limit exceeded
java.util.zip.ZipException这个问题怎么解决?