The character ‘ ‘ is an invalid XML character 错误定位解决过程

本文记录了一次排查Maven私服中jar包导致的运行时错误的经历。问题源于一个jar包内含有pom.xml,其定义的依赖路径与实际项目配置冲突。经过清理缓存、对比文件、分析包结构等步骤,最终确定并解决了问题,避免了对私服的误解和弃用。
摘要由CSDN通过智能技术生成

问题由来

由于负责公司maven 私服的管理,研发提交了一系列第三方的jar包到私服,按照开发给的group/artifact/version,将包上传到了公司私服上,然后就遇到了问题,开发代码编译都正常,但是编译的包,一运行就报下面的错误。
在这里插入图片描述
然后就开始了陪开发定位问题的过程。

问题定位

  1. 首先根据提示信息,查看问题出错代码,检查发现没有问题;
  2. 按照网上的方案,开发本地缓存全部清理,从私服上重新下载包,没有问题。
  3. 将本地下载的包跟服务器上的包,比对md5,完全一样。
  4. 将包改为本地引用的方式,即不从私服下载,代码编译正常,运行正确。所以开发怀疑,是不是私服做了什么改动导致。
  5. 考虑到之前版本号中包含字符,通过GUI上传,确实会出问题,改为通过命令行上传,然后重新清理本地缓存,重新下载,编译,运行仍然报错。
  6. 问题卡住,找不到头绪,开发反馈,每次出错,都是一个包Business-Toolkit-5.0.6.10.jar,其他包都没问题。
  7. 既然该包有问题,就进去看看该包的目录结构。果真解压后发现:在这里插入图片描述
  8. 从图中看,这个包中居然有一个pom.xml文件,里面定义了其他依赖包的信息。检查改pom文件,发现与开发给的pom,同一个包的路径完全不一致。至此,问题初步有了眉目:开发自定义了一套各个包的路径跟这个包中自带的各个包的路径冲突,所以导致了编译不报错,但是运行报错。

问题解决

找到了问题原因,重新按照这个pom文件中的定义,上传所有jar包,然后开发将Business-Toolkit-5.0.6.10.jar重新打包,去掉了这个包自带的pom.xml信息,将不带依赖关系的Business-Toolkit-5.0.6.10.jar重新上传到私服,编译通过,运行正确,问题解决。

备注

该问题相当烧脑,真正的错误跟提示信息完全不搭边,查的过程也是几经周转,开发也毫无办法,总是怀疑是私服做了什么改动。作为管理私服的负责人,只能根据问题和开发反馈的蛛丝马迹,找到问题的线索,终于在第7步有了发现。期间开发几次要放弃使用私服管理这个包,说将包直接引入到项目代码lib中,几经劝说,并积极协助定位原因。最后终于与开发一起找到问题的真正原因和解决方案。

特此记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值