java报错之springboot3+vue2项目web服务层报错总结

 更新时间:2023年06月20日 11:12:05   作者:海上有只小云雀^-^  
java入门学习,随手记录一下开发过程中产生的报错,有些错误是网上搜索再加上自己尝试,随手引用了一些其他人的记录,也是留给自己看的,或是希望能对其他初学者有帮助

java报错之springboot3+vue2项目web服务层报错

会持续更新!!!!!

1、Autowired members must be defined in valid Spring bean

自动注入对象必须定义在有效的spring bean内,也就是说只有本身作为bean的类才能注入其他对象。

2、‘PageRequest(int, int, org.springframework.data.domain.Sort)’ has protected access in ‘org.springframework.data.domain.PageRequest’

使用Pageable page = new PageRequest(1, 1, Sort.Direction.ASC) 报错

由于springboot2.2.1以上版本PageRequest不能在实例化,改用

Pageable page = PageRequest.of(1, 1, Sort.Direction.ASC)

如何写java单元测试

引入了spring-boot-starter-test的话,就包含了mockito的依赖了。

3、Junit测试Gradle项目时报错

No tests found for given includes: xxxx.xxxxTest**

gradle设置的run test running改为IDEA

4.postman测试接口报错

For queries with named parameters you need to provide names for method parameters.

gradle设置的build and run using 设置为gradle

5.java Cannot resolve constructor 不能解析构造函数

检查构造函数传参的顺序和数量是否正确

6.SpringBoot项目启动失败报错

Annotation-specified bean name ‘xx‘ for bean class [xxx] conflicts with existing

有同名的文件,搜索找到同名文件,无用删除,有用的话就改名。找不到的话可能是缓存,清除idea缓存。

7.post上传文件功能,接口保存数据时报错

could not execute statement; SQL [n/a]; constraint [null];

接口方法没有@RequestBody

  • 解决:
  • 添加@RequestBody

8.post上传文件,使用postman测试报错

Data truncation: Data too long for column ‘xxx’ at row 1

由于数据库建立时候没有分配好字符的大小

查看数据库中xxx字段的长度,增加该长度

9.post上传文件,使用postman测试报错

Content type ‘multipart/form-data;boundary=----------0467042;charset=UTF-8‘ not supported

不支持’multipart/form-data;boundary=-------------------------036764477110441760467042;charset=UTF-8’请求类型。

注解 支持的类型 支持的请求类型 支持的Content-Type 请求示例

@PathVariable 	url 	GET 	所有 	/test/{id}
@RequestParam 	url 	GET 	所有 	/test?id=1
				Body 	POST/PUT/DELETE/PATCH 	form-data或x-www.form-urlencoded 	id:1
@RequestBody 	Body 	POST/PUT/DELETE/PATCH 	json 	{"id":1}

由于传递formData类型数据,删除@RequestBody,改成@RequestParam

  • @RequestBody

@RequestBody用来接收前端传递给后端的json字符串中的数据,GET方式的请求一般通过URL中携带key-value参数,而@RequestBody接收的是请求体中的数据(json格式的数据,只有请求体中能保存json),所以使用@RequestBody接收数据的时候必须是POST方式等方式。

@RequestBody与@RequestParam()可以同时使用,但@RequestBody最多只能有一个,而@RequestParam()可以多个。

  • @RequestParam

@RequestParam用来处理 Content-Type 为 application/x-www-form-urlencoded 编码的内容,Content-Type默认为该属性。

可以用于接收URL中的参数并捆绑到方法的参数中,也可以接受post请求体中的Content-Type 为 application/x-www-form-urlencoded的数据。(post比较常用的是json格式数据)

@RequestParam(value=”参数名”,required=”true/false”,defaultValue=””)
  • value:参数的key
  • required:是否为必须,请求中必须包含该参数,如果不包含就报错。
  • defaultValue:代替的默认参数值,设置后required将自动置false
@PostMapping("/upload")
  public ReturnResult upload(
      @RequestHeader(value = REQUEST_HEADER_TOKEN) String token,
      @Validated @RequestBody UploadDto uploadDto,
      BindingResult bindingResult) {
    BindingParamUtil.checkParam(bindingResult);
    TokenProperties tokenProperties = jwtTokenProvider.parseToken(token);
    ReturnResult upload = fileService.upload(uploadDto, tokenProperties);
    return upload;
  }

改成

@PostMapping("/upload")
public ReturnResult upload(
    @RequestHeader(value = REQUEST_HEADER_TOKEN) String token,
    @RequestParam("file") MultipartFile file,
    @RequestParam("fileType") String fileType) {
  TokenProperties tokenProperties = jwtTokenProvider.parseToken(token);
  UploadDto uploadDto = new UploadDto(file, fileType);
  ReturnResult upload = fileService.upload(uploadDto, tokenProperties);
  return upload;
}

10.Executing an update/delete query

在方法上添加注解@Modifying,并且需要在类或是方法上加上事务注解

@Transactional(rollbackFor = Exception.class)

根据请求头不同进行不同的逻辑操作

@PutMapping("/devices/{id}")
public Response<Object> getList(@PathVariable Integer id, @RequestHeader(value = "Modify-Content", require = false) String modifyMark, HttpServletRequest request) {
String info = "info";
if(Object.equals(modifyMark, info)) {
DeviceInfoModifyVO.setDeviceName(request.getParameter("deviceName"))
}else {
}
}

11.Unable to locate Attribute with the the given name [x] on this ManagedType

在Spring中使用JPA操作数据库,然后使用复杂查询条件中的关联查询。这里的字段userOpenId是WeekSummary实体中的字段,在User表中,并不是叫这个,所以在查询的时候就找不到这个字段。

把userOpenId字段改成联表中的字段名称

12.ailed to parse multipart servlet request

配置路径未生效或不存在,选择一个已经存在的路径

  • 配置地址为服务器肯定会存在的路径
  • 程序中配置路径前首先检查有没有此路径
fileUtil.saveToFile(file, filepath)

如果是相对路径,存放在项目的路径下的文件夹下

13.Required request body is missing: public

检查vue的request.js拦截器中

  • 要写传参
  • post对应的传参是data, get对应的传参是params

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Struts2学习教程之自定义类型转换器的方法

    Struts2学习教程之自定义类型转换器的方法

    类型转换器的作用是将请求中的字符串或字符串数组参数与action中的对象进行相互转换。下面这篇文章主要给大家介绍了关于Struts2学习教程之自定义类型转换器的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-05-05
  • Java中的这些骚操作你不能不知道!!!

    Java中的这些骚操作你不能不知道!!!

    今天在看python相关的东西,看到各种骚操作,回头想了下Java有没有什么骚操作,整理下面几种,一起看一下吧,希望能给你带来帮助
    2021-07-07
  • RocketMQ4.5.2 修改mqnamesrv 和 mqbroker的日志路径操作

    RocketMQ4.5.2 修改mqnamesrv 和 mqbroker的日志路径操作

    这篇文章主要介绍了RocketMQ 4.5.2 修改mqnamesrv 和 mqbroker的日志路径操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Maven scala和java混合打包方式

    Maven scala和java混合打包方式

    这篇文章主要介绍了Maven scala和java混合打包方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Java实现简易学生管理系统

    Java实现简易学生管理系统

    这篇文章主要为大家详细介绍了Java实现简易学生管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • Spring Boot中捕获异常错误信息并将其保存到数据库中的操作方法

    Spring Boot中捕获异常错误信息并将其保存到数据库中的操作方法

    这篇文章主要介绍了Spring Boot中捕获异常错误信息并将其保存到数据库中的操作方法,通过实例代码介绍了使用Spring Data JPA创建一个异常信息的存储库接口,以便将异常信息保存到数据库,需要的朋友可以参考下
    2023-10-10
  • Kotlin与java8的SAM转换对比(进阶)

    Kotlin与java8的SAM转换对比(进阶)

    这篇文章主要介绍了Kotlin与java8的SAM转换对比,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Spring Cloud Eureka服务注册中心入门流程分析

    Spring Cloud Eureka服务注册中心入门流程分析

    这篇文章主要介绍了Spring Cloud Eureka服务注册中心入门流程分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • java多线程教程之如何使用线程池详解

    java多线程教程之如何使用线程池详解

    这篇文章主要给大家介绍了关于java多线程之如何使用线程池的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • springsecurity 登录认证流程分析一(ajax)

    springsecurity 登录认证流程分析一(ajax)

    这篇文章主要介绍了springsecurity 登录认证一(ajax篇),本文通过实例代码图文相结合给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-08-08

最新评论