Feder -Boot -Validierungsfehleranforderung schlecht 400Java

Java-Forum
Anonymous
 Feder -Boot -Validierungsfehleranforderung schlecht 400

Post by Anonymous »

Ich entwickle eine CRUD -API mit einer Post -Methode, wenn diese Methode in meinem Postboten getestet wird

Code: Select all

2023-02-15T13:34:35.528-03:00  WARN 8792 --- [nio-8080-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MethodArgumentNotValidException: Validation failed for argument [0] in public org.springframework.http.ResponseEntity com.api.order_control.controllers.OrderController.saveOrder(com.api.order_control.dtos.OrderDto) with 2 errors: [Field error in object 'orderDto' on field 'doorNumber': rejected value [null]; codes [NotBlank.orderDto.doorNumber,NotBlank.doorNumber,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [orderDto.doorNumber,doorNumber]; arguments []; default message [doorNumber]]; default message [must not be blank]] [Field error in object 'orderDto' on field 'block': rejected value [null]; codes [NotBlank.orderDto.block,NotBlank.block,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [orderDto.block,block]; arguments []; default message [block]]; default message [must not be blank]] ]

< /code>
Ich konnte nicht verstehen, warum mein Blank mit dieser Methode nicht funktionieren kann und warum dieser Fehler.  Kann mir jemand helfen? < /p>
Modell < /p>
package com.api.order_control.models;

import jakarta.persistence.*;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.UUID;

@Entity
@Table(name = "restaurant_orders")
public class OrderModel implements Serializable {
private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private UUID id;
@Column(nullable = false, length = 11)
private String customerName;
@Column(nullable = false, length = 15)
private String phoneNumber;
@Column(nullable = false, length = 25)
private String address;
@Column(nullable = false, length = 10)
private String doorNumber;
@Column(length = 5)
private String block;
@Column(nullable = false,  length = 30)
private String orderNote;
@Column(nullable = false)
private Float price;
@Column(nullable = false)
private LocalDateTime registrationDate;

public UUID getId() {
return id;
}

public void setId(UUID id) {
this.id = id;
}

public String getCustomerName() {
return customerName;
}

public void setCustomerName(String customerName) {
this.customerName = customerName;
}

public String getPhoneNumber() {
return phoneNumber;
}

public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}

public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}

public String getDoorNumber() {
return doorNumber;
}

public void setDoorNumber(String doorNumber) {
this.doorNumber = doorNumber;
}

public String getBlock() {
return block;
}

public void setBlock(String block) {
this.block = block;
}

public String getOrderNote() {
return orderNote;
}

public void setOrderNote(String order) {
this.orderNote = orderNote;
}

public Float getPrice() {
return price;
}

public void setPrice(Float price) {
this.price = price;
}

public LocalDateTime getRegistrationDate() {
return registrationDate;
}

public void setRegistrationDate(LocalDateTime registrationDate) {
this.registrationDate = registrationDate;
}
}
< /code>
dto pack < /p>
package com.api.order_control.dtos;

import jakarta.validation.constraints.NotBlank;

public class OrderDto {
@NotBlank
private String customerName;
@NotBlank
private String phoneNumber;
@NotBlank
private String address;
@NotBlank
private String doorNumber;
@NotBlank
private String block;
@NotBlank
private String orderNote;

public String getCustomerName() {
return customerName;
}

public void setCustomerName(String customerName) {
this.customerName = customerName;
}

public String getPhoneNumber() {
return phoneNumber;
}

public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}

public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}

public String doorNumber() {
return doorNumber;
}

public void doorNumber(String doorName) {
this.doorNumber = doorName;
}

public String getBlock() {
return block;
}

public void setBlock(String block) {
this.block = block;
}

public String getOrderNote() {
return orderNote;
}

public void setOrderNote(String orderNote) {
this.orderNote = orderNote;
}

}

< /code>
Controller mit Post < /p>
package com.api.order_control.controllers;

import com.api.order_control.dtos.OrderDto;
import com.api.order_control.models.OrderModel;
import com.api.order_control.services.OrderService;
import jakarta.validation.Valid;
import org.springframework.beans.BeanUtils;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.time.LocalDateTime;
import java.time.ZoneId;

@RestController
@CrossOrigin(origins = "*", maxAge = 3600)
@RequestMapping("/orders")
public class OrderController {

final OrderService orderService;

public OrderController(OrderService orderService) {
this.orderService = orderService;
}

@PostMapping
public ResponseEntity  saveOrder(@RequestBody @Valid OrderDto orderDto) {
var orderModel = new OrderModel();
BeanUtils.copyProperties(orderDto, orderModel);
orderModel.setRegistrationDate(LocalDateTime.now(ZoneId.of("UTC")));
orderModel.setPrice(70.8f);
return ResponseEntity.status(HttpStatus.CREATED).body(orderService.save(orderModel));
}
}

< /code>
Ich hatte bereits einen leeren Fehler, weil ich einen Float verwendet habe, aber in diesem Fall "numberdoor" ist nur eine Zeichenfolge. Was ist der Grund für diesen Fehler?{
"customerName": "Ryan",
"phoneNumber": "1 99859 5854",
"address": "St Street Vl 190",
"doorNumber": "5",
"orderNote": "Pepperoni Pizza"
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post