大黄瓜de冬天 2023-06-13 15:21 采纳率: 89.5%
浏览 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日
  • 展开全部

悬赏问题

  • ¥20 白日门传奇少一个启动区服和启动服务器的快捷键,东西都是全的 , 他们说套一个出来就行了 但我就是弄不好,谁看看,
  • ¥15 昨天电脑装了matlab好像多了个虚拟盘,关机前还被舍友插了usb不知道干了什么,今天开机电脑就变这样了,求解答
  • ¥100 如何用js写一个游戏云存档
  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计