当前位置: 首页 > 知识库问答 >
问题:

无法在Spring中将POST请求发送到@RequestBody,错误415

林鸿彩
2023-03-14

我目前正在做一个项目,我需要向spring发送一个POST请求。我已经找了好几个小时的解决方案,但没有找到一个可行的。当我开发该部件时,请求起了作用。问题是,在创建一些新功能(另一个控制器中有两个新endpoint)后,用于创建或更新实体的POST请求停止工作,而不会更改特定区域中的代码。

控制器:

@RestController
@CrossOrigin
@RequestMapping
public class SensorController {  

@PostMapping(value = "/createSensor", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
    public ResponseEntity<UUID> insertSensor(@RequestBody SensorDto sensorDto){
        UUID sensorId = sensorService.createSesor(sensorDto);
        return new ResponseEntity<>(sensorId,HttpStatus.CREATED);
    }
}

最初,关于消费和生产的部分不在那里,我尝试了它,因为在其他帖子上看到了它,但对情况没有帮助。

传感器:

public class SensorDto extends RepresentationModel<SensorDto> {
private UUID id;
private String description;
private Integer maxValue;
private Device device;

邮递员的电话:图像

标题:标题

有人能帮我让它重新工作吗?

编辑:从其他控制器请求的代码

@PostMapping("/addSensorToDevice")
public ResponseEntity<UUID> addSensor(@RequestBody DeviceSensorLinkDto deviceSensorLinkDto){
    System.out.println("OOO: " + deviceSensorLinkDto.toString());
    if(deviceService.addSensor(deviceSensorLinkDto)){
        return new ResponseEntity<>(deviceSensorLinkDto.getDeviceId(), HttpStatus.OK);
    }else {
        return new ResponseEntity<>(deviceSensorLinkDto.getDeviceId(), HttpStatus.EXPECTATION_FAILED);
    }
}

@PostMapping("/addClientToDevice")
public ResponseEntity<UUID> addClient(@RequestBody DeviceClientLinkDto deviceClientLinkDto){
    System.out.println("OOO: " + deviceClientLinkDto.toString());
    if(deviceService.addClient(deviceClientLinkDto)){
        return new ResponseEntity<>(deviceClientLinkDto.getDeviceId(), HttpStatus.OK);
    }else {
        return new ResponseEntity<>(deviceClientLinkDto.getDeviceId(), HttpStatus.EXPECTATION_FAILED);
    }
}

这一个有效,并且删除传感器实体的请求也有效。

共有1个答案

左丘昕
2023-03-14

您的应用程序中似乎有多个@JsonBackReference@JsonManagedReference,因此,您必须为所有对提供一个名称,如下所示:

@JsonBackReference(value = "something")

@JsonManagedReference(value = "something")
@JsonBackReference(value = "something-else")

@JsonManagedReference(value = "something-else")

您可以在参考文档中找到相关信息:

引用属性对的逻辑HAE;用于链接托管引用和反向引用。如果只有一个引用对(例如,只有父/子链接的节点类,由一个托管引用和匹配的反向引用组成),则可以使用默认名称。

 类似资料: