前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >众筹项目Bug整理总结

众筹项目Bug整理总结

作者头像
OY
发布2022-03-17 20:50:20
8360
发布2022-03-17 20:50:20
举报
文章被收录于专栏:OY_学习记录OY_学习记录

查看项目源码

一、页面不删除原有属性,重复加载

​ 权限维护模块

解决方式:

原:

改:

二、后台无法保存获取 ID 值

问题描述: 权限维护模块从前台获取数据后传输到后台后,在逻辑处理时把获取的参数值,过滤掉 id。导致项目出现修改错误。

修改前:

修改后:

解决方式:

修改为:

三、整合 SpringSecurity

spring security 的使用时报错如下 An internal error occurred while trying to authenticate the user A granted authority textual representation is required

使用角色来控制权限的时候不仅仅 需要

代码语言:javascript
复制
for (TRole role:roleList) {
    authorities.add(new SimpleGrantedAuthority("ROLE_"+role.getName()));
}

在前面加上 ROLE_的固定格式,还要注意数据库查询出来的值不能为空!,数据中含有空值都不可以

由于我是用数据库中的表来实验

这是改之后的表

SpringSecurity 配置中的一些问题 登录页面不跳转

原:

修改:

四、Eureka 注册中心

报错:Request execution error. endpoint=DefaultEndpoint{ serviceUrl=’http://localhost:8761/eureka/}

  • eureka 会自动注册自己,必须设置下面属性 在配置文件中设置以下属性
代码语言:javascript
复制
eureka.client.register-with-eureka=false

eureka.client.fetch-registry=false
  • 必须先去注册中心,在启动用户者

五、Fegin 远程无法调用

报错:FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException

  • @RequestParam(required = false) String XXCode 这个参数少了个 value = “XXCode”, 这个是 Spring 4.0 版本后,@RequestParam 注解对参数传值有了很好的封装特性并严格校验。 改为:@RequestParam(value = “XXCode”, required = false) String XXCode
  • Hystrix 的 fallback 降级机制 需要在配置的 fallback 方法上配置 @Component 注解,否则无法启动

六 、SpringSession 存储到 Redis 中

报错: Exception Processing ErrorPage[errorCode=0, location=/error]

​ 如果是在登录状态下,退出时没有删除存储在 redis 中的 Session, 再次启动服务器,访问页面,则会报 500 错误,只需要在 redis 中把存储的 redis 数据删除后,重启服务器,就可以正常访问页面了。

七、ProjectInfoController 报错无法获取 t_project 数据

报错:Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause java.lang.NullPointerException: null

解决方式:

​ 原因: 在 ProjectVo 中缺少给属性实例化,导致在获取数据之后无法 VO 对象无法存储

七、ProjectInfoController 报错无法获取 t_project 数据

报错:Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause java.lang.NullPointerException: null

解决方式:

​ 原因: 在 ProjectVo 中缺少给属性实例化,导致在获取数据之后无法 VO 对象无法存储

八、SpringBoot:错误 Missing URI template variable ‘userId’ for method parameter of type String

报错:Missing URI template variable ‘retrunId’ for method parameter of type Integer

九、支付宝支付报错

报错:Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause

解决方法:

先检查以下的注解是否存在

代码语言:javascript
复制
@controller层没有加@ResponseBody

@Service层实现类未添加注解@Autowired

@RestController使用成了@Controller

总结来说 就是 springboot 注解要正确使用,以及前后台的数据格式要一致。

十、项目部署(失败)

整个项目在 windows 测试已经成功部署,打包到 Linux 去测试时,一直无法调用远程服务。 因为项目采用的分布式,需要多台服务器部署,自己本人只有一台阿里服务器,无法达到部署效果。 采用 Linux 本地多台虚拟机部署,程序跑起来没有问题,但是 Eureka 无法调用 Fegin 远程服务,原因在于我本地的 IP 都是局域网,所以测试部署就只能放弃了。 若要成功部署此项目需要有云服务器公网 IP

以下是启动项目的命令,虽然因为没有足够的云服务器,项目无法在 Linux 测试,也在此记录一下。方便以后查看

  • 192.168.64.129 注册中心
代码语言:javascript
复制
nohup java -jar scw-register-0.0.1-SNAPSHOT.jar \
> ./scw-register.log &
  • 192.168.64.130 SCW-USER:7000 用户服务
代码语言:javascript
复制
nohup java -jar scw-user-0.0.1-SNAPSHOT.jar \
--spring.profiles.active=prod \
--eureka.instance.ipAddress=192.168.64.129 \
--server.port=7000 \
> ./scw-user.log &
  • 192.168.64.132:8000 SCW-PROJECT 项目服务
代码语言:javascript
复制
nohup java -jar scw-project-0.0.1-SNAPSHOT.jar \
--spring.profiles.active=prod \
--server.port=8000 \
--eureka.instance.ipAddress=192.168.64.129  > ./scw-project.log &
  • 192.168.64.133:9000 SCW-ORER 订单服务
代码语言:javascript
复制
nohup java -jar scw-order-0.0.1-SNAPSHOT.jar \
--spring.profiles.active=prod \
--eureka.instance.ipAddress=192.168.64.129 \
--spring.datasource.url=jdbc:mysql://192.168.64.131:3306/SCWFunding?useSSL=false  >./scw-order.log &
  • 192.168.64.131:10000 SCW-WEBUI Web 项目
代码语言:javascript
复制
nohup java -jar scw-webui-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod \
--eureka.instance.ipAddress=192.168.64.129 \
--alipay.notify_url=http://boysurf.cn/order/payAsync \
--alipay.return_url=http://boysurf.cn/order/pay/success \
--jdbc:mysql:192.168.64.131:3306/SCWFunding?useSSL=false > ./scw-webui.log &

十一、总结

​ 众筹项目到终于写完了,经历 20 多天的代码编写,期间出现了许多的 Bug,很多 Bug 都是因为自己的粗心,都是一些细微的小错误,要么方法调用错误,在方法上少注解,配置漏写。众筹项目很适合新手练习都是使用的一些基本的技术体系,很适合巩固自己的学的知识点,在这个项目中可以灵活使用自己的 SMM、SpringBoot、SpringCloud 等技术,虽然涉及的技术面不是特别广,但是练手足够了。

​ 最后了,虽然在 windows 平台这边跑成功了,但是 Linux 失败了,这个项目也留下了一点点小小的遗憾,以后等有机会在来测试部署。。。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-01-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、页面不删除原有属性,重复加载
  • 二、后台无法保存获取 ID 值
  • 三、整合 SpringSecurity
  • 四、Eureka 注册中心
  • 五、Fegin 远程无法调用
  • 六 、SpringSession 存储到 Redis 中
  • 七、ProjectInfoController 报错无法获取 t_project 数据
  • 七、ProjectInfoController 报错无法获取 t_project 数据
  • 八、SpringBoot:错误 Missing URI template variable ‘userId’ for method parameter of type String
  • 九、支付宝支付报错
  • 十、项目部署(失败)
  • 十一、总结
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档