当前位置: 首页 > news >正文

【failed with MalformedInputException: Input length = 1 -> 修复解决方案】

failed with MalformedInputException: Input length = 1 -> 修复解决方案

    • 1.1 案发现场
    • 1.2 分析诊断
    • 1.3 解决方案

1.1 案发现场

最近把一个服务spring boot版本升级到了2.7.18,以及JDK升级到了JDK17, 结果服务打包报错:

failed with MalformedInputException: Input length = 1 ->

报错详情如下:

[INFO] Copying 57 resources
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.407 s
[INFO] Finished at: 2024-09-10T19:39:11+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.3.0:resources (default-resources) on project xxx: filtering C:\Users\xxx\Documents\workspace\IdeaProjects\xxx\xxx\src\main\resources\cert\pfx_cert\xxx.pfx to C:\Users\xxx\Documents\workspace\IdeaProjects\xxx\xxx\target\classes\cert\pfx_cert\xxx.pfx failed with MalformedInputException: Input length = 1 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

1.2 分析诊断

经过一番分析和排查发现,最终发现是由于src\main\resources目录下有一些证书文件的字符存在不合法的UniCode字符导致的。

但是由于是证书文件,不方便修改,因此只能通过其他途径绕过这个检测来避免报错。

方法如下:

  1. 在 pom.xml 中查看是否启用了 filtering:
<build><resources><resource><directory>src/main/resources</directory><filtering>true</filtering></resource></resources>
</build>
  • 如果果启用了过滤,确保你的 properties 文件没有包含不合法的 Unicode 字符。
  • 如果有,可能需要手动修复这些字符或禁用过滤。

经过排查,发现少注释了<filtering>true</filtering>

		<!-- 本地运行需要注释下面内容 --><resources><resource><directory>src/main/resources</directory><filtering>true</filtering>
<!--				<excludes>-->
<!--					排除各个环境下的配置文件 -->
<!--					<exclude>*/*</exclude>-->
<!--					K8S部署加载的是/opt/SpringCloud/app/xxx/config目录的配置文件 -->
<!--					<exclude>*.*</exclude>-->
<!--					仅用于开发时候用插件生成src/gens/java下的代码,打包时不需要打包 -->
<!--					<exclude>generator/**</exclude>-->
<!--					K8S部署加载的是/opt/SpringCloud/app/xx/cert/** 的证书文件 -->
<!--					<exclude>cert/**</exclude>-->
<!--				</excludes>--></resource></resources><!-- 本地运行需要注释上面内容 -->

1.3 解决方案

<filtering>true</filtering> 也注释掉。

		<!-- 本地运行需要注释下面内容 -->
<!--		<resources>-->
<!--			<resource>-->
<!--				<directory>src/main/resources</directory>-->
<!--				<filtering>true</filtering>-->
<!--				<excludes>-->
<!--					 排除各个环境下的配置文件 -->
<!--					<exclude>*/*</exclude>-->
<!--					K8S部署加载的是/opt/SpringCloud/app/xxxx/config目录的配置文件  -->
<!--					<exclude>*.*</exclude>-->
<!--					仅用于开发时候用插件生成src/gens/java下的代码,打包时不需要打包 -->
<!--					<exclude>generator/**</exclude>-->
<!--					K8S部署加载的是/opt/SpringCloud/app/xxxx/cert/** 的证书文件 -->
<!--					<exclude>cert/**</exclude>-->
<!--				</excludes>-->
<!--			</resource>-->
<!--		</resources>--><!-- 本地运行需要注释上面内容 -->

至此,问题修复,再次打包就正常了~

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 写在OceanBase开源三周年
  • RasberryPi 3B树莓派基本配置
  • 新颖的团建分组方式
  • 利用Python实现希尔伯特变换取包络 - 理论及实践
  • java语言发展史
  • DDS基本原理--FPGA学习笔记
  • RUST 学习之全局变量
  • Frida0D - hook JNIEnv 相关函数
  • gradle 学习备忘
  • 基于EPS32C3电脑远程开机模块设计
  • springboot健康管理系统-计算机毕业设计源码25248
  • vue3项目,本地页面正常显示,打包后页面空白
  • 计算机视觉中,什么是上下文信息(contextual information)?
  • Ubuntu系统修改静态IP
  • 软件测试报告示例模板
  • Android 架构优化~MVP 架构改造
  • Android单元测试 - 几个重要问题
  • Angular 响应式表单 基础例子
  • co.js - 让异步代码同步化
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • Java-详解HashMap
  • js递归,无限分级树形折叠菜单
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • JS字符串转数字方法总结
  • nodejs实现webservice问题总结
  • python3 使用 asyncio 代替线程
  • Python学习之路16-使用API
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • SAP云平台里Global Account和Sub Account的关系
  • Windows Containers 大冒险: 容器网络
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 十年未变!安全,谁之责?(下)
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • MyCAT水平分库
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #进阶:轻量级ORM框架Dapper的使用教程与原理详解
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (JS基础)String 类型
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (一)、python程序--模拟电脑鼠走迷宫
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)h264中avc和flv数据的解析
  • *2 echo、printf、mkdir命令的应用
  • .NET Framework、.NET Core 、 .NET 5、.NET 6和.NET 7 和.NET8 简介及区别
  • .net反混淆脱壳工具de4dot的使用
  • /etc/fstab 只读无法修改的解决办法