gulimall基础篇错误总结
- 前言
- 一、错误记录与解决
- 1.1 renren-fast-vue 报错
- 1.2 npm run dev 报错
- 1.3 端口被占用的问题
- 1.4 无法登录问题
- 1.5 数据库连接失败
- 1.6 internal java compiler error
- 1.7 java: -source 1.5 中不支持 diamond 运算符
- 1.8 项目启动报nacos错误
- 1.9 会员服务OpenFeign启动失败
- 2.0 P76所属分组无数据
- 2.1 pms_attr表缺少value_type字段
- 2.2 引入阿里云oss对象存储后renrenfast项目报错
- 2.3 quarzt启动 Unable to store Job : ‘DEFAULT.TASK_1‘, because one already exists with this identification
前言
该篇文章主要记录谷粒商城项目中遇到的错误及解决方案。
一、错误记录与解决
1.1 renren-fast-vue 报错
以管理员的方式打开 VSCode 在终端执行 npm install 出现如下错误:
解决方案:
1.ctrl + 右击下载到本地
2.保存在C盘
3.VSCode 在终端执行如下命令
npm install chromedriver --chromedriver_filepath=你的下载路径\chromedriver_win32.zip
4.完美解决
1.2 npm run dev 报错
1.报错如下
2.总共有六处报错,解决方案如下
执行命令 npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/然后重新启动项目即可
1.3 端口被占用的问题
1.报错如下
2.解决方案
netstat -ano|findstr 被占用的端口号,查出占用进程
taskkill -f -pid 杀死占用该端口号对应的进程
1.4 无法登录问题
1.账号密码正确,却登录不进去
2.f12 打开开发者工具,控制台提示如下
3.跨域问题,打开后台 renren-fast 将该方法取消注释,重启项目
4.重新登录,登录成功!
1.5 数据库连接失败
1.错误如下
2022-04-06 08:39:33.067 ERROR 71092 --- [ main] com.alibaba.druid.pool.DruidDataSource : init datasource error, url: jdbc:mysql://192.168.220.130:3306/gulimall_admin?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
2.检查MySQL服务是否启动
3.检查MySQL连接地址为192.168.220.131
而配置文件链接地址为92.168.220.130,将130改为131重新启动服务
4.启动成功(若仍有错误在数据库连接url末尾加上&useSSL=false)
2022-04-06 09:22:35.428 INFO 38756 --- [ main] o.s.s.c.ThreadPoolTaskScheduler : Initializing ExecutorService
2022-04-06 09:22:36.363 INFO 38756 --- [ main] d.s.w.p.DocumentationPluginsBootstrapper : Context refreshed
2022-04-06 09:22:36.378 INFO 38756 --- [ main] d.s.w.p.DocumentationPluginsBootstrapper : Found 1 custom documentation plugin(s)
2022-04-06 09:22:36.408 INFO 38756 --- [ main] s.d.s.w.s.ApiListingReferenceScanner : Scanning for api listing references
2022-04-06 09:22:36.521 INFO 38756 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: userInfoUsingGET_1
2022-04-06 09:22:36.529 INFO 38756 --- [ main] o.s.s.quartz.SchedulerFactoryBean : Will start Quartz Scheduler [RenrenScheduler] in 30 seconds
2022-04-06 09:22:36.691 INFO 38756 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '/renren-fast'
2022-04-06 09:22:36.826 INFO 38756 --- [ main] c.a.c.n.registry.NacosServiceRegistry : nacos registry, renren-fast 10.200.1.44:8080 register finished
2022-04-06 09:22:36.828 INFO 38756 --- [ main] io.renren.RenrenApplication : Started RenrenApplication in 8.572 seconds (JVM running for 9.585)
2022-04-06 09:23:00.928 INFO 38756 --- [nio-8080-exec-1] o.a.c.c.C.[.[localhost].[/renren-fast] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2022-04-06 09:23:00.928 INFO 38756 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2022-04-06 09:23:00.941 INFO 38756 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 13 ms
1.6 internal java compiler error
1.本人使用的是idea2021.1.3版本的,maven3.8.4启动项目经常报这个错。
2.File -> Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler 设置成1.8即可
1.7 java: -source 1.5 中不支持 diamond 运算符
1.启动时,报如下错误
2.打开Project Structure的Module
3.将Language level改成8即可(各个模块都改成8)
1.8 项目启动报nacos错误
1.错误信息
2022-04-06 09:59:06.223 ERROR 46996 --- [ main] c.a.cloud.nacos.NacosConfigProperties : create config service error!properties=NacosConfigProperties{serverAddr='null', encode='null', group='DEFAULT_GROUP', prefix='null', fileExtension='properties', timeout=3000, endpoint='null', namespace='null', accessKey='null', secretKey='null', contextPath='null', clusterName='null', name='null', sharedDataids='null', refreshableDataids='null', extConfig=null},e=,
com.alibaba.nacos.api.exception.NacosException: java.lang.reflect.InvocationTargetException
at com.alibaba.nacos.api.config.ConfigFactory.createConfigService(ConfigFactory.java:45) ~[nacos-api-1.1.1.jar:na]
at com.alibaba.nacos.api.NacosFactory.createConfigService(NacosFactory.java:43) ~[nacos-api-1.1.1.jar:na]
at com.alibaba.cloud.nacos.NacosConfigProperties.configServiceInstance(NacosConfigProperties.java:346) ~[spring-cloud-alibaba-nacos-config-2.1.0.RELEASE.jar:2.1.0.RELEASE]
at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.locate(NacosPropertySourceLocator.java:63) [spring-cloud-alibaba-nacos-config-2.1.0.RELEASE.jar:2.1.0.RELEASE]
at org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration.initialize(PropertySourceBootstrapConfiguration.java:97) [spring-cloud-context-2.1.2.RELEASE.jar:2.1.2.RELEASE]
at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:623) [spring-boot-2.1.8.RELEASE.jar:2.1.8.RELEASE]
at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:367) [spring-boot-2.1.8.RELEASE.jar:2.1.8.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:311) [spring-boot-2.1.8.RELEASE.jar:2.1.8.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) [spring-boot-2.1.8.RELEASE.jar:2.1.8.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1204) [spring-boot-2.1.8.RELEASE.jar:2.1.8.RELEASE]
at io.renren.RenrenApplication.main(RenrenApplication.java:21) [classes/:na]
Caused by: java.lang.reflect.InvocationTargetException: null
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_321]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_321]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_321]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_321]
at com.alibaba.nacos.api.config.ConfigFactory.createConfigService(ConfigFactory.java:42) ~[nacos-api-1.1.1.jar:na]
... 10 common frames omitted
2.由于配置springboot配置文件中,没有配置nacos配置中心地址、端口导致的。新建一个配置文件bootstrap.properties,输入如下内容, 问题解决
spring.application.name=gulimall-product
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
1.9 会员服务OpenFeign启动失败
1.报错信息如下
No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-netflix-ribbon?
2.由于SpringCloud Feign在Hoxton.M2 RELEASED版本之后不再使用Ribbon而是使用spring-cloud-loadbalancer,所以不引入spring-cloud-loadbalancer会报错。
3.解决方法:除去ribbon依赖,加入spring-cloud-loadbalancer依赖
<dependency>
<groupId>com.oyz.gulimall</groupId>
<artifactId>gulimall-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
2.0 P76所属分组无数据
1.76集规格参数新增功能中,如下所属分组显示无数据
2.点击确定保存后,F12打开开发者工具发现attrGroupId为null
3.打开后开gulimall-product服务控制台,报出如下信息
4.发现错误
5.重新启动gulimall-product服务,所属分组数据出现了
2.1 pms_attr表缺少value_type字段
1.数据库的 pms_attr 表加上value_type字段,类型为tinyint
2.AttyEntity.java、AttrVo.java中各添加private Integer valueType;
3.AttrDao.xml中添加如下标签
<result property="valueType" column="value_type"/>
4.以上添加代码最好和数据库字段顺序一直
2.2 引入阿里云oss对象存储后renrenfast项目报错
1.报错信息
Error creating bean with name 'ossClient' defined in class path resource [com/alibaba/alicloud/context/oss/OssContextAutoConfiguration.class]: Unsatisfied dependency expressed through method 'ossClient' parameter 1; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'spring.cloud.alicloud.oss-com.alibaba.alicloud.context.oss.OssProperties': Lookup method resolution failed; nested exception is java.lang.IllegalStateException: Failed to introspect Class [com.alibaba.alicloud.context.oss.OssProperties] from ClassLoader [sun.misc.Launcher$AppClassLoader@14dad5dc]
......
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'spring.cloud.alicloud.oss-com.alibaba.alicloud.context.oss.OssProperties': Lookup method resolution failed; nested exception is java.lang.IllegalStateException: Failed to introspect Class [com.alibaba.alicloud.context.oss.OssProperties] from ClassLoader [sun.misc.Launcher$AppClassLoader@14dad5dc]
......
Caused by: java.lang.IllegalStateException: Failed to introspect Class [com.alibaba.alicloud.context.oss.OssProperties] from ClassLoader [sun.misc.Launcher$AppClassLoader@14dad5dc]
2.报错分析
原因出现在:我们在common模块中引入了oss的依赖,但是renren-fast模块本身就有oss的依赖且renren-fast引入了common,大概率是两者的冲突。
3.解决办法
在renren-fast的pom.xml中找到gulimall-common依赖,排除oss依赖。
<dependency>
<groupId>com.huang.bx</groupId>
<artifactId>gulimall-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alicloud-oss</artifactId>
</exclusion>
</exclusions>
</dependency>
2.3 quarzt启动 Unable to store Job : ‘DEFAULT.TASK_1‘, because one already exists with this identification
1.Springboot 项目集成了 quarzt 之前本地测试没问题,突然昨天Springboot 项目启动报错,一直启动不起来报错如下
2022-10-23 21:52:51 [main] ERROR o.s.b.SpringApplication:826 Application run failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'scheduleJobController': Unsatisfied dependency expressed through field 'scheduleJobService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scheduleJobService': Invocation of init method failed; nested exception is java.lang.RuntimeException: 创建定时任务失败
Caused by: java.lang.RuntimeException: 创建定时任务失败
at com.mtons.liflag.web.job.utils.ScheduleUtils.createScheduleJob(ScheduleUtils.java:66)
at com.mtons.liflag.web.job.service.impl.ScheduleJobServiceImpl.init(ScheduleJobServiceImpl.java:43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157)
... 61 common frames omitted
Caused by: org.quartz.ObjectAlreadyExistsException: Unable to store Job : 'DEFAULT.TASK_1', because one already exists with this identification.
at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJob(JobStoreSupport.java:1113)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$2.executeVoid(JobStoreSupport.java:1067)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$VoidTransactionCallback.execute(JobStoreSupport.java:3780)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$VoidTransactionCallback.execute(JobStoreSupport.java:3778)
at org.quartz.impl.jdbcjobstore.JobStoreCMT.executeInLock(JobStoreCMT.java:245)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJobAndTrigger(JobStoreSupport.java:1063)
at org.quartz.core.QuartzScheduler.scheduleJob(QuartzScheduler.java:855)
at org.quartz.impl.StdScheduler.scheduleJob(StdScheduler.java:249)
at com.mtons.liflag.web.job.utils.ScheduleUtils.createScheduleJob(ScheduleUtils.java:59)
... 69 common frames omitted
2.解决方案
删除数据 qrtz_job_details 中的数据正常而言,qrtz_triggers表中对qrtz_job_details有外键引用,所以直接是删除不掉的,而qrtz_cron_triggers表中又有对qrtz_triggers的外键引用.所以,要按照:以下顺序删除数据 qrtz_cron_triggers> qrtz_triggers> qrtz_job_details。
3.执行三条sql后,项目正常启动
DELETE from qrtz_cron_triggers;
DELETE from qrtz_triggers;
DELETE from qrtz_job_details;