大黄瓜de冬天 2023-06-13 15:21 采纳率: 88.9%
浏览 24
已结题

区块链项目替换spring-core-4.3版本到5.2版本

问题遇到的现象和发生背景

区块链的项目运行在linux上,spring-core的jar版本低了,需要替换到更高版本,然后把5.2版本的jar下载下来放到区块链项目下的lib里面,低版本删除后启动不成功。
以下是错误信息:

java.lang.NoClassDefFoundError: org/springframework/core/ErrorCoded
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:1017) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) 
    at jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800) 
    at jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698) 
    at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621) 
    at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579) 
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:522) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:1017) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) 
    at jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800) 
    at jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698) 
    at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621) 
    at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579) 
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:522) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:1017) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) 
    at jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800) 
    at jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698) 
    at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621) 
    at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579) 
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:522) 
    at org.springframework.boot.bind.RelaxedDataBinder.modifyProperties(RelaxedDataBinder.java:154) ~[spring-boot-1.5.22.RELEASE.jar:1.5.22.RELEASE]
    at org.springframework.boot.bind.RelaxedDataBinder.doBind(RelaxedDataBinder.java:137) ~[spring-boot-1.5.22.RELEASE.jar:1.5.22.RELEASE]
    at org.springframework.validation.DataBinder.bind(DataBinder.java:741) ~[spring-context-4.3.30.RELEASE.jar:4.3.30.RELEASE]
    at org.springframework.boot.yaml.SpringProfileDocumentMatcher.extractSpringProfiles(SpringProfileDocumentMatcher.java:91) ~[spring-boot-1.5.22.RELEASE.jar:1.5.22.RELEASE]
    at org.springframework.boot.yaml.SpringProfileDocumentMatcher.matches(SpringProfileDocumentMatcher.java:71) ~[spring-boot-1.5.22.RELEASE.jar:1.5.22.RELEASE]
    at org.springframework.beans.factory.config.YamlProcessor.process(YamlProcessor.java:232) ~[spring-beans-4.3.30.RELEASE.jar:4.3.30.RELEASE]
    at org.springframework.beans.factory.config.YamlProcessor.process(YamlProcessor.java:158) ~[spring-beans-4.3.30.RELEASE.jar:4.3.30.RELEASE]
    at org.springframework.beans.factory.config.YamlProcessor.process(YamlProcessor.java:135) ~[spring-beans-4.3.30.RELEASE.jar:4.3.30.RELEASE]
    at org.springframework.boot.env.YamlPropertySourceLoader$Processor.process(YamlPropertySourceLoader.java:99) ~[spring-boot-1.5.22.RELEASE.jar:1.5.22.RELEASE]
    at org.springframework.boot.env.YamlPropertySourceLoader.load(YamlPropertySourceLoader.java:58) ~[spring-boot-1.5.22.RELEASE.jar:1.5.22.RELEASE]
    at org.springframework.boot.env.PropertySourcesLoader.load(PropertySourcesLoader.java:126) ~[spring-boot-1.5.22.RELEASE.jar:1.5.22.RELEASE]
    at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.doLoadIntoGroup(ConfigFileApplicationListener.java:465) ~[spring-boot-1.5.22.RELEASE.jar:1.5.22.RELEASE]
    at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.loadIntoGroup(ConfigFileApplicationListener.java:450) ~[spring-boot-1.5.22.RELEASE.jar:1.5.22.RELEASE]
    at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:443) ~[spring-boot-1.5.22.RELEASE.jar:1.5.22.RELEASE]
    at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:370) ~[spring-boot-1.5.22.RELEASE.jar:1.5.22.RELEASE]
    at org.springframework.boot.context.config.ConfigFileApplicationListener.addPropertySources(ConfigFileApplicationListener.java:216) ~[spring-boot-1.5.22.RELEASE.jar:1.5.22.RELEASE]
    at org.springframework.boot.context.config.ConfigFileApplicationListener.postProcessEnvironment(ConfigFileApplicationListener.java:190) ~[spring-boot-1.5.22.RELEASE.jar:1.5.22.RELEASE]
    at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEnvironmentPreparedEvent(ConfigFileApplicationListener.java:180) ~[spring-boot-1.5.22.RELEASE.jar:1.5.22.RELEASE]
    at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEvent(ConfigFileApplicationListener.java:168) ~[spring-boot-1.5.22.RELEASE.jar:1.5.22.RELEASE]
    at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) ~[spring-context-4.3.30.RELEASE.jar:4.3.30.RELEASE]
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) ~[spring-context-4.3.30.RELEASE.jar:4.3.30.RELEASE]
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) ~[spring-context-4.3.30.RELEASE.jar:4.3.30.RELEASE]
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:122) ~[spring-context-4.3.30.RELEASE.jar:4.3.30.RELEASE]
    at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:75) ~[spring-boot-1.5.22.RELEASE.jar:1.5.22.RELEASE]
    at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:53) ~[spring-boot-1.5.22.RELEASE.jar:1.5.22.RELEASE]
    at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:320) ~[spring-boot-1.5.22.RELEASE.jar:1.5.22.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:295) ~[spring-boot-1.5.22.RELEASE.jar:1.5.22.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1082) ~[spring-boot-1.5.22.RELEASE.jar:1.5.22.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1071) ~[spring-boot-1.5.22.RELEASE.jar:1.5.22.RELEASE]
    at org.bcos.browser.Application.main(Application.java:35) [fisco-bcos-browser.jar]
Caused by: java.lang.ClassNotFoundException: org.springframework.core.ErrorCoded
    at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) 
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:522) 
    ... 57 more
操作环境、软件版本等信息

linux

尝试过的解决方法

1.linux上全文件搜索spring-core字符(find . -name '*' | xargs grep -ri "spring-core"),以期找到对应的配置文件,结果都不是要找的配置文件。(可能以别的形式储存)
2.flsco bcos官方文档搜索相关,没有找到此内容(可能我理解不够)
3.百度搜索,同flsco bcos官方文档

我想要达到的结果

linux环境下区块链项目替换(升级)jar的流程。

  • 写回答

1条回答 默认 最新

  • IT论之程序员 2023-06-14 22:25
    关注

    从错误信息来看,这个项目使用的spring boot版本较低,要升级spring-core版本,需要同时升级spring boot版本。升级步骤如下:

    1. 找到项目使用的spring boot版本,可以在pom.xml或build.gradle文件中找到。假设当前使用spring boot 1.5.22。
    2. 选择要升级到的spring boot版本,比如2.3.4.RELEASE。在spring boot官网可以找到不同版本对应的spring版本,spring boot 2.3.4对应spring 5.2.8。
    3. 备份项目代码和依赖。
    4. 更新pom.xml或build.gradle文件,将spring boot版本更新到2.3.4.RELEASE。
    5. 删除项目下的依赖文件夹,让gradle或maven重新下载依赖。这时会下载spring 5.2.8及其他最新依赖。
    6. 重新编译和运行项目,检查是否有兼容性问题,并作出相应修改。
    7. 如果运行成功,项目就升级到spring boot 2.3.4和spring 5.2.8成功了。
      具体步骤如下:
    8. 打开pom.xml,找到<spring-boot.version>1.5.22.RELEASE</spring-boot.version>,将版本号替换为2.3.4.RELEASE
    9. 删除项目下的lib文件夹和.m2文件夹(maven缓存)。
    10. 执行命令mvn clean install重新下载依赖和编译。
    11. 重新运行项目,检查并修复任何错误。
    12. 如果项目运行成功,spring boot版本就升级成功了。
      这是一个比较通用的jar版本升级步骤,对spring boot项目升级spring版本也适用。关键是要匹配spring boot版本和对应的spring版本,删除旧的依赖让构建工具重新下载最新依赖。
      希望这些步骤可以帮助您成功升级项目中的spring版本。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月23日
  • 已采纳回答 6月15日
  • 专家修改了标签 6月14日
  • 修改了问题 6月13日
  • 展开全部

悬赏问题

  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大