谷粒商城项目-P17快速开发-逆向工程搭建&使用

1.人人开源代码生成器下载

人人开源的代码生成器地址为renren-generator: 人人开源项目的代码生成器,可在线生成entity、xml、dao、service、vue、sql代码,减少70%以上的开发任务

将该项目clone到本地

删掉代码生成器中的git文件夹

打开项目后端代码的资源管理器,将代码生成器的代码,复制粘贴到项目后端代码中

2.代码生成器配置

将代码生成器配置到聚合服务的modules里

以商品服务gulimall-pms为例

修改代码生成器的application.yml

修改代码生成器的generator.properties

修改Controller模板,注释@RequiresPermissions注解和相关代码,这是不会用到的内容

3.生成商品服务的代码

运行代码生成器

但是在运行时,报如下错误:

读取D:\maven3\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar时出错; zip END header not found

解决java: 读取D:\maven3\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar时出错; zip END header not found问题

1.考虑是否是由于前面把代码生成器的部分代码注释导致的,虽然从理论上不太可能,但是可以测试一下

经过把注释取消,发现运行时问题依旧。还是有问题

2.考虑打开logback-classic-1.2.3.jar,看看是否有问题

发现这个jar包只有3k,其他的jar包,基本都是几十k起步,所以初步怀疑这个包有问题。

3.从mvnrepository里搜索出问题的jar包

根据mvnrepository(Maven Repository: ch.qos.logback » logback-classic » 1.2.3)的显示,这个jar包大概率有问题

因此我采取下载这个jar包并且替换的方式测试

4.编译报错问题解决了,但是出现了新问题

C:\Users\ymcfy\.jdks\corretto-17.0.16\bin\java.exe -XX:TieredStopAtLevel=1 -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-Dmanagement.endpoints.jmx.exposure.include=*" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2024.2.4\lib\idea_rt.jar=54274" -Dfile.encoding=UTF-8 -classpath G:\code\java\gulimall\renren-generator\target\classes;D:\maven3\repository\org\springframework\boot\spring-boot-starter\2.2.6.RELEASE\spring-boot-starter-2.2.6.RELEASE.jar;D:\maven3\repository\org\springframework\boot\spring-boot\2.2.6.RELEASE\spring-boot-2.2.6.RELEASE.jar;D:\maven3\repository\org\springframework\boot\spring-boot-starter-logging\2.2.6.RELEASE\spring-boot-starter-logging-2.2.6.RELEASE.jar;D:\maven3\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;D:\maven3\repository\org\apache\logging\log4j\log4j-to-slf4j\2.12.1\log4j-to-slf4j-2.12.1.jar;D:\maven3\repository\org\apache\logging\log4j\log4j-api\2.12.1\log4j-api-2.12.1.jar;D:\maven3\repository\org\slf4j\jul-to-slf4j\1.7.30\jul-to-slf4j-1.7.30.jar;D:\maven3\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;D:\maven3\repository\org\yaml\snakeyaml\1.25\snakeyaml-1.25.jar;D:\maven3\repository\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;D:\maven3\repository\org\springframework\spring-core\5.2.5.RELEASE\spring-core-5.2.5.RELEASE.jar;D:\maven3\repository\org\springframework\spring-jcl\5.2.5.RELEASE\spring-jcl-5.2.5.RELEASE.jar;D:\maven3\repository\org\springframework\boot\spring-boot-starter-web\2.2.6.RELEASE\spring-boot-starter-web-2.2.6.RELEASE.jar;D:\maven3\repository\org\springframework\boot\spring-boot-starter-json\2.2.6.RELEASE\spring-boot-starter-json-2.2.6.RELEASE.jar;D:\maven3\repository\com\fasterxml\jackson\core\jackson-databind\2.10.3\jackson-databind-2.10.3.jar;D:\maven3\repository\com\fasterxml\jackson\core\jackson-annotations\2.10.3\jackson-annotations-2.10.3.jar;D:\maven3\repository\com\fasterxml\jackson\core\jackson-core\2.10.3\jackson-core-2.10.3.jar;D:\maven3\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.10.3\jackson-datatype-jdk8-2.10.3.jar;D:\maven3\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.10.3\jackson-datatype-jsr310-2.10.3.jar;D:\maven3\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.10.3\jackson-module-parameter-names-2.10.3.jar;D:\maven3\repository\org\springframework\boot\spring-boot-starter-tomcat\2.2.6.RELEASE\spring-boot-starter-tomcat-2.2.6.RELEASE.jar;D:\maven3\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.33\tomcat-embed-core-9.0.33.jar;D:\maven3\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.33\tomcat-embed-el-9.0.33.jar;D:\maven3\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.33\tomcat-embed-websocket-9.0.33.jar;D:\maven3\repository\org\springframework\boot\spring-boot-starter-validation\2.2.6.RELEASE\spring-boot-starter-validation-2.2.6.RELEASE.jar;D:\maven3\repository\jakarta\validation\jakarta.validation-api\2.0.2\jakarta.validation-api-2.0.2.jar;D:\maven3\repository\org\hibernate\validator\hibernate-validator\6.0.18.Final\hibernate-validator-6.0.18.Final.jar;D:\maven3\repository\org\jboss\logging\jboss-logging\3.4.1.Final\jboss-logging-3.4.1.Final.jar;D:\maven3\repository\com\fasterxml\classmate\1.5.1\classmate-1.5.1.jar;D:\maven3\repository\org\springframework\spring-web\5.2.5.RELEASE\spring-web-5.2.5.RELEASE.jar;D:\maven3\repository\org\springframework\spring-beans\5.2.5.RELEASE\spring-beans-5.2.5.RELEASE.jar;D:\maven3\repository\org\springframework\spring-webmvc\5.2.5.RELEASE\spring-webmvc-5.2.5.RELEASE.jar;D:\maven3\repository\org\springframework\spring-aop\5.2.5.RELEASE\spring-aop-5.2.5.RELEASE.jar;D:\maven3\repository\org\springframework\spring-context\5.2.5.RELEASE\spring-context-5.2.5.RELEASE.jar;D:\maven3\repository\org\springframework\spring-expression\5.2.5.RELEASE\spring-expression-5.2.5.RELEASE.jar;D:\maven3\repository\com\baomidou\mybatis-plus-boot-starter\3.3.1\mybatis-plus-boot-starter-3.3.1.jar;D:\maven3\repository\com\baomidou\mybatis-plus\3.3.1\mybatis-plus-3.3.1.jar;D:\maven3\repository\com\baomidou\mybatis-plus-extension\3.3.1\mybatis-plus-extension-3.3.1.jar;D:\maven3\repository\com\baomidou\mybatis-plus-core\3.3.1\mybatis-plus-core-3.3.1.jar;D:\maven3\repository\com\baomidou\mybatis-plus-annotation\3.3.1\mybatis-plus-annotation-3.3.1.jar;D:\maven3\repository\org\mybatis\mybatis\3.5.3\mybatis-3.5.3.jar;D:\maven3\repository\org\mybatis\mybatis-spring\2.0.3\mybatis-spring-2.0.3.jar;D:\maven3\repository\org\springframework\boot\spring-boot-autoconfigure\2.2.6.RELEASE\spring-boot-autoconfigure-2.2.6.RELEASE.jar;D:\maven3\repository\org\springframework\boot\spring-boot-starter-jdbc\2.2.6.RELEASE\spring-boot-starter-jdbc-2.2.6.RELEASE.jar;D:\maven3\repository\com\zaxxer\HikariCP\3.4.2\HikariCP-3.4.2.jar;D:\maven3\repository\org\springframework\spring-jdbc\5.2.5.RELEASE\spring-jdbc-5.2.5.RELEASE.jar;D:\maven3\repository\org\springframework\spring-tx\5.2.5.RELEASE\spring-tx-5.2.5.RELEASE.jar;D:\maven3\repository\com\alibaba\druid\1.1.13\druid-1.1.13.jar;D:\maven3\repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;D:\maven3\repository\commons-io\commons-io\2.5\commons-io-2.5.jar;D:\maven3\repository\commons-configuration\commons-configuration\1.10\commons-configuration-1.10.jar;D:\maven3\repository\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar;D:\maven3\repository\com\alibaba\fastjson\1.2.60\fastjson-1.2.60.jar;D:\maven3\repository\org\apache\velocity\velocity\1.7\velocity-1.7.jar;D:\maven3\repository\commons-collections\commons-collections\3.2.1\commons-collections-3.2.1.jar;D:\maven3\repository\com\github\pagehelper\pagehelper-spring-boot-starter\1.2.5\pagehelper-spring-boot-starter-1.2.5.jar;D:\maven3\repository\org\mybatis\spring\boot\mybatis-spring-boot-starter\1.3.2\mybatis-spring-boot-starter-1.3.2.jar;D:\maven3\repository\org\mybatis\spring\boot\mybatis-spring-boot-autoconfigure\1.3.2\mybatis-spring-boot-autoconfigure-1.3.2.jar;D:\maven3\repository\com\github\pagehelper\pagehelper-spring-boot-autoconfigure\1.2.5\pagehelper-spring-boot-autoconfigure-1.2.5.jar;D:\maven3\repository\com\github\pagehelper\pagehelper\5.1.4\pagehelper-5.1.4.jar;D:\maven3\repository\com\github\jsqlparser\jsqlparser\1.0\jsqlparser-1.0.jar;D:\maven3\repository\mysql\mysql-connector-java\8.0.17\mysql-connector-java-8.0.17.jar;D:\maven3\repository\com\oracle\ojdbc6\11.2.0.3\ojdbc6-11.2.0.3.jar;D:\maven3\repository\com\microsoft\sqlserver\sqljdbc4\4.0\sqljdbc4-4.0.jar;D:\maven3\repository\org\postgresql\postgresql\42.2.11\postgresql-42.2.11.jar;D:\maven3\repository\org\mongodb\mongo-java-driver\3.11.0\mongo-java-driver-3.11.0.jar io.renren.RenrenApplication
Failed to instantiate SLF4J LoggerFactory
Reported exception:
java.lang.NoClassDefFoundError: ch/qos/logback/core/joran/spi/JoranException
	at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
	at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
	at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:417)
	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:362)
	at org.apache.commons.logging.LogAdapter$Slf4jAdapter.createLocationAwareLog(LogAdapter.java:130)
	at org.apache.commons.logging.LogAdapter.createLog(LogAdapter.java:91)
	at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:67)
	at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:59)
	at org.springframework.boot.SpringApplication.<clinit>(SpringApplication.java:196)
	at io.renren.RenrenApplication.main(RenrenApplication.java:14)
Caused by: java.lang.ClassNotFoundException: ch.qos.logback.core.joran.spi.JoranException
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
	... 10 more
Exception in thread "main" java.lang.NoClassDefFoundError: ch/qos/logback/core/joran/spi/JoranException
	at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
	at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
	at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:417)
	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:362)
	at org.apache.commons.logging.LogAdapter$Slf4jAdapter.createLocationAwareLog(LogAdapter.java:130)
	at org.apache.commons.logging.LogAdapter.createLog(LogAdapter.java:91)
	at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:67)
	at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:59)
	at org.springframework.boot.SpringApplication.<clinit>(SpringApplication.java:196)
	at io.renren.RenrenApplication.main(RenrenApplication.java:14)
Caused by: java.lang.ClassNotFoundException: ch.qos.logback.core.joran.spi.JoranException
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
	... 10 more

进程已结束,退出代码为 1

这个问题是无法实例化 SLF4J 日志工厂

那么这种情况就部分地说明,前面替换jar包的方式,不一定是最合适的方式

5.我采取最简单粗暴的方式,把仓库所有内容都清空,从新下载一遍所需的依赖试一下

但是这个过程中,出现了一个很奇怪的现象,renren-generator里,只剩下了target一个文件夹了

把renren-generator重新导入进来

这个过程,仓库依赖也完成了重新下载,同时进入D:\maven3\repository\ch\qos\logback\logback-classic\1.2.3查看,发现logback-classic-1.2.3.jar的文件大小是284k,正常了

6.重新运行,报Failed to read candidate component class错误

重新运行后,旧问题解决了,也不编译报错,运行的跟SLFJ相关的报错也没有了,但是出现了新报错

C:\Users\ymcfy\.jdks\corretto-17.0.16\bin\java.exe -XX:TieredStopAtLevel=1 -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-Dmanagement.endpoints.jmx.exposure.include=*" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2024.2.4\lib\idea_rt.jar=54696" -Dfile.encoding=UTF-8 -classpath G:\code\java\gulimall\renren-generator\target\classes;D:\maven3\repository\org\springframework\boot\spring-boot-starter\2.2.6.RELEASE\spring-boot-starter-2.2.6.RELEASE.jar;D:\maven3\repository\org\springframework\boot\spring-boot\2.2.6.RELEASE\spring-boot-2.2.6.RELEASE.jar;D:\maven3\repository\org\springframework\boot\spring-boot-starter-logging\2.2.6.RELEASE\spring-boot-starter-logging-2.2.6.RELEASE.jar;D:\maven3\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;D:\maven3\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;D:\maven3\repository\org\apache\logging\log4j\log4j-to-slf4j\2.12.1\log4j-to-slf4j-2.12.1.jar;D:\maven3\repository\org\apache\logging\log4j\log4j-api\2.12.1\log4j-api-2.12.1.jar;D:\maven3\repository\org\slf4j\jul-to-slf4j\1.7.30\jul-to-slf4j-1.7.30.jar;D:\maven3\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;D:\maven3\repository\org\yaml\snakeyaml\1.25\snakeyaml-1.25.jar;D:\maven3\repository\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;D:\maven3\repository\org\springframework\spring-core\5.2.5.RELEASE\spring-core-5.2.5.RELEASE.jar;D:\maven3\repository\org\springframework\spring-jcl\5.2.5.RELEASE\spring-jcl-5.2.5.RELEASE.jar;D:\maven3\repository\org\springframework\boot\spring-boot-starter-web\2.2.6.RELEASE\spring-boot-starter-web-2.2.6.RELEASE.jar;D:\maven3\repository\org\springframework\boot\spring-boot-starter-json\2.2.6.RELEASE\spring-boot-starter-json-2.2.6.RELEASE.jar;D:\maven3\repository\com\fasterxml\jackson\core\jackson-databind\2.10.3\jackson-databind-2.10.3.jar;D:\maven3\repository\com\fasterxml\jackson\core\jackson-annotations\2.10.3\jackson-annotations-2.10.3.jar;D:\maven3\repository\com\fasterxml\jackson\core\jackson-core\2.10.3\jackson-core-2.10.3.jar;D:\maven3\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.10.3\jackson-datatype-jdk8-2.10.3.jar;D:\maven3\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.10.3\jackson-datatype-jsr310-2.10.3.jar;D:\maven3\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.10.3\jackson-module-parameter-names-2.10.3.jar;D:\maven3\repository\org\springframework\boot\spring-boot-starter-tomcat\2.2.6.RELEASE\spring-boot-starter-tomcat-2.2.6.RELEASE.jar;D:\maven3\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.33\tomcat-embed-core-9.0.33.jar;D:\maven3\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.33\tomcat-embed-el-9.0.33.jar;D:\maven3\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.33\tomcat-embed-websocket-9.0.33.jar;D:\maven3\repository\org\springframework\boot\spring-boot-starter-validation\2.2.6.RELEASE\spring-boot-starter-validation-2.2.6.RELEASE.jar;D:\maven3\repository\jakarta\validation\jakarta.validation-api\2.0.2\jakarta.validation-api-2.0.2.jar;D:\maven3\repository\org\hibernate\validator\hibernate-validator\6.0.18.Final\hibernate-validator-6.0.18.Final.jar;D:\maven3\repository\org\jboss\logging\jboss-logging\3.4.1.Final\jboss-logging-3.4.1.Final.jar;D:\maven3\repository\com\fasterxml\classmate\1.5.1\classmate-1.5.1.jar;D:\maven3\repository\org\springframework\spring-web\5.2.5.RELEASE\spring-web-5.2.5.RELEASE.jar;D:\maven3\repository\org\springframework\spring-beans\5.2.5.RELEASE\spring-beans-5.2.5.RELEASE.jar;D:\maven3\repository\org\springframework\spring-webmvc\5.2.5.RELEASE\spring-webmvc-5.2.5.RELEASE.jar;D:\maven3\repository\org\springframework\spring-aop\5.2.5.RELEASE\spring-aop-5.2.5.RELEASE.jar;D:\maven3\repository\org\springframework\spring-context\5.2.5.RELEASE\spring-context-5.2.5.RELEASE.jar;D:\maven3\repository\org\springframework\spring-expression\5.2.5.RELEASE\spring-expression-5.2.5.RELEASE.jar;D:\maven3\repository\com\baomidou\mybatis-plus-boot-starter\3.3.1\mybatis-plus-boot-starter-3.3.1.jar;D:\maven3\repository\com\baomidou\mybatis-plus\3.3.1\mybatis-plus-3.3.1.jar;D:\maven3\repository\com\baomidou\mybatis-plus-extension\3.3.1\mybatis-plus-extension-3.3.1.jar;D:\maven3\repository\com\baomidou\mybatis-plus-core\3.3.1\mybatis-plus-core-3.3.1.jar;D:\maven3\repository\com\baomidou\mybatis-plus-annotation\3.3.1\mybatis-plus-annotation-3.3.1.jar;D:\maven3\repository\org\mybatis\mybatis\3.5.3\mybatis-3.5.3.jar;D:\maven3\repository\org\mybatis\mybatis-spring\2.0.3\mybatis-spring-2.0.3.jar;D:\maven3\repository\org\springframework\boot\spring-boot-autoconfigure\2.2.6.RELEASE\spring-boot-autoconfigure-2.2.6.RELEASE.jar;D:\maven3\repository\org\springframework\boot\spring-boot-starter-jdbc\2.2.6.RELEASE\spring-boot-starter-jdbc-2.2.6.RELEASE.jar;D:\maven3\repository\com\zaxxer\HikariCP\3.4.2\HikariCP-3.4.2.jar;D:\maven3\repository\org\springframework\spring-jdbc\5.2.5.RELEASE\spring-jdbc-5.2.5.RELEASE.jar;D:\maven3\repository\org\springframework\spring-tx\5.2.5.RELEASE\spring-tx-5.2.5.RELEASE.jar;D:\maven3\repository\com\alibaba\druid\1.1.13\druid-1.1.13.jar;D:\maven3\repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;D:\maven3\repository\commons-io\commons-io\2.5\commons-io-2.5.jar;D:\maven3\repository\commons-configuration\commons-configuration\1.10\commons-configuration-1.10.jar;D:\maven3\repository\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar;D:\maven3\repository\com\alibaba\fastjson\1.2.60\fastjson-1.2.60.jar;D:\maven3\repository\org\apache\velocity\velocity\1.7\velocity-1.7.jar;D:\maven3\repository\commons-collections\commons-collections\3.2.1\commons-collections-3.2.1.jar;D:\maven3\repository\com\github\pagehelper\pagehelper-spring-boot-starter\1.2.5\pagehelper-spring-boot-starter-1.2.5.jar;D:\maven3\repository\org\mybatis\spring\boot\mybatis-spring-boot-starter\1.3.2\mybatis-spring-boot-starter-1.3.2.jar;D:\maven3\repository\org\mybatis\spring\boot\mybatis-spring-boot-autoconfigure\1.3.2\mybatis-spring-boot-autoconfigure-1.3.2.jar;D:\maven3\repository\com\github\pagehelper\pagehelper-spring-boot-autoconfigure\1.2.5\pagehelper-spring-boot-autoconfigure-1.2.5.jar;D:\maven3\repository\com\github\pagehelper\pagehelper\5.1.4\pagehelper-5.1.4.jar;D:\maven3\repository\com\github\jsqlparser\jsqlparser\1.0\jsqlparser-1.0.jar;D:\maven3\repository\mysql\mysql-connector-java\8.0.17\mysql-connector-java-8.0.17.jar;D:\maven3\repository\com\oracle\ojdbc6\11.2.0.3\ojdbc6-11.2.0.3.jar;D:\maven3\repository\com\microsoft\sqlserver\sqljdbc4\4.0\sqljdbc4-4.0.jar;D:\maven3\repository\org\postgresql\postgresql\42.2.11\postgresql-42.2.11.jar;D:\maven3\repository\org\mongodb\mongo-java-driver\3.11.0\mongo-java-driver-3.11.0.jar io.renren.RenrenApplication

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.2.6.RELEASE)

2025-09-11 19:01:07.844  INFO 19996 --- [           main] io.renren.RenrenApplication              : Starting RenrenApplication on ym with PID 19996 (G:\code\java\gulimall\renren-generator\target\classes started by ymcfy in G:\code\java\gulimall)
2025-09-11 19:01:07.846  INFO 19996 --- [           main] io.renren.RenrenApplication              : No active profile set, falling back to default profiles: default
2025-09-11 19:01:08.001  WARN 19996 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [G:\code\java\gulimall\renren-generator\target\classes\io\renren\RenrenApplication.class]; nested exception is org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet: file [G:\code\java\gulimall\renren-generator\target\classes\io\renren\RenrenApplication.class]; nested exception is java.lang.IllegalArgumentException: Unsupported class file major version 61
2025-09-11 19:01:08.014 ERROR 19996 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [G:\code\java\gulimall\renren-generator\target\classes\io\renren\RenrenApplication.class]; nested exception is org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet: file [G:\code\java\gulimall\renren-generator\target\classes\io\renren\RenrenApplication.class]; nested exception is java.lang.IllegalArgumentException: Unsupported class file major version 61
	at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.scanCandidateComponents(ClassPathScanningCandidateComponentProvider.java:452) ~[spring-context-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:315) ~[spring-context-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:276) ~[spring-context-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	at org.springframework.context.annotation.ComponentScanAnnotationParser.parse(ComponentScanAnnotationParser.java:132) ~[spring-context-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:295) ~[spring-context-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:249) ~[spring-context-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:206) ~[spring-context-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:174) ~[spring-context-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:319) ~[spring-context-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:236) ~[spring-context-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:275) ~[spring-context-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:95) ~[spring-context-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:706) ~[spring-context-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:532) ~[spring-context-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) ~[spring-boot-2.2.6.RELEASE.jar:2.2.6.RELEASE]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) ~[spring-boot-2.2.6.RELEASE.jar:2.2.6.RELEASE]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.2.6.RELEASE.jar:2.2.6.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-boot-2.2.6.RELEASE.jar:2.2.6.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) ~[spring-boot-2.2.6.RELEASE.jar:2.2.6.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) ~[spring-boot-2.2.6.RELEASE.jar:2.2.6.RELEASE]
	at io.renren.RenrenApplication.main(RenrenApplication.java:14) ~[classes/:na]
Caused by: org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet: file [G:\code\java\gulimall\renren-generator\target\classes\io\renren\RenrenApplication.class]; nested exception is java.lang.IllegalArgumentException: Unsupported class file major version 61
	at org.springframework.core.type.classreading.SimpleMetadataReader.getClassReader(SimpleMetadataReader.java:61) ~[spring-core-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:50) ~[spring-core-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:103) ~[spring-core-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:123) ~[spring-core-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.scanCandidateComponents(ClassPathScanningCandidateComponentProvider.java:428) ~[spring-context-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	... 20 common frames omitted
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 61
	at org.springframework.asm.ClassReader.<init>(ClassReader.java:196) ~[spring-core-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	at org.springframework.asm.ClassReader.<init>(ClassReader.java:177) ~[spring-core-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	at org.springframework.asm.ClassReader.<init>(ClassReader.java:163) ~[spring-core-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	at org.springframework.asm.ClassReader.<init>(ClassReader.java:284) ~[spring-core-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	at org.springframework.core.type.classreading.SimpleMetadataReader.getClassReader(SimpleMetadataReader.java:58) ~[spring-core-5.2.5.RELEASE.jar:5.2.5.RELEASE]
	... 24 common frames omitted


进程已结束,退出代码为 1

报错主要信息如下:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [G:\code\java\gulimall\renren-generator\target\classes\io\renren\RenrenApplication.class]; nested exception is org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet: file [G:\code\java\gulimall\renren-generator\target\classes\io\renren\RenrenApplication.class]; nested exception is java.lang.IllegalArgumentException: Unsupported class file major version 61

7.目前来看,出现这个问题的原因,初步推测是Java和Spring的版本不匹配

采取将jdk的版本从17降为8的方案

此时要注意的是,所有的涉及jdk版本的内容都要变,如果没有全部都修改的话,会出现下列问题

java: 警告: 源发行版 17 需要目标发行版 17

我的操作如下:

1)卸载jdk17

2)安装jdk8

3)配置jdk8的环境变量

4)修改项目结构中,项目->sdk、项目->语言级别

5)修改项目结构中,模块->每一个模块->源->的语言级别

6)修改项目结构中,模块->每一个模块->依赖->模块SDK

7)修改项目结构中,SDK

8)修改设置->构建、执行、部署->编译器->Java编译器

9)将maven仓库中的settings.xml中,所有对jdk17的描述修改为jdk8

10)将maven->配置文件,检查一下是否勾选了jdk17

11)将所有的仓库清空掉,重新加载所有依赖。此步骤可在上述所有步骤未生效时采用。清空后在maven重新下载源代码和文档

8.问题解决,运行成功

4.将商品服务代码合并入项目

运行成功后

全选所有的表,点击生成代码

会有一个需下载文件

解压后如下

复制main文件夹,打开gulimall-product源代码的src目录,将main文件夹复制到此处,此时代码生成器生成的java和resources文件夹内容也复制过来了

同时可以发现前端代码也粘贴过来了,这些代码目前用不到,因此删掉resources的src文件夹

5.整合商品服务代码的依赖问题

在代码生成器内容复制过来后,发现有如下这种依赖问题

需要一些通用公共类,建立一个模块,gulimall-common,用来存储公共类,让其他模块依赖此模块

让商品服务依赖common模块

接下来开始处理,有些类在renren-fast的coomon的utils里就有,例如

可以采取在common模块里添加common->utils包,然后把renren-fast的coomon的utils的PageUtils类与R类、Query类复制过来

接着发现在商品服务的dao里,需要mybatisplus依赖,因此在common模块里添加

接着发现在商品服务里需要lombok的依赖,因此在common模块里添加

对于R类,内部也有依赖问题,需要修改

接着发现在Query类,还有依赖问题,下图是修改后的截图,修改前是缺少对SQLFilter、StringUtils的依赖

先解决StringUtils问题,缺少的是commons-lang依赖,引入如下

对于SQLFilter问题,它需要的代码是人人开源自己写的,可以也从人人开源的xss包里找到。此处采取直接复制一整个文件夹的方式

在人人开源中路径如下:

复制粘贴后路径如下:

接下来修改Query类的引用路径

此时Query仍然有依赖问题,是Constant类,此处截图也是为修改后

解决方法也是采取将人人开源的Constant类复制粘贴到Common模块

后记:

1.在整个过程中,总共出现并解决了四个问题,分别是:

1)java: 读取D:\maven3\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar时出错; zip END header not found问题

2)Failed to instantiate SLF4J LoggerFactory
Reported exception:
java.lang.NoClassDefFoundError: ch/qos/logback/core/joran/spi/JoranException

3)org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class

4)java: 警告: 源发行版 17 需要目标发行版 17

2.在本文所述内容基础上,还是会有一些依赖问题,会在之后博客再专门解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值