Метод запроса "GET" не поддерживается, метод не разрешен
я новичок в веб-сервисе через spring bot. Когда я использую метод @GetMapping,он работает нормально, нет никаких проблем, и я предоставляю @DeleteMapping methoed it throw mw этот тип ошибки
Метод запроса "GET" не поддерживается. как решить эту проблему.
я проверяю url через свой браузер и пост человек везде я получаю ту же ошибку
Что я уже пробовал:
controller.java
package com.main.AngBoot.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; import com.main.AngBoot.bean.Product; import com.main.AngBoot.service.ProductHardcodedService; @CrossOrigin(origins="http://localhost:4200") @RestController public class ProductController { @Autowired private ProductHardcodedService prodService; @GetMapping("/users/{productname}/prodct") public List<Product> getAllProducts(@PathVariable String productname){ return prodService.findAll(); } @DeleteMapping("/users/{productname}/prodct/{id}") public ResponseEntity<Void> deleteProduct(@PathVariable String productname, @PathVariable long id){ Product product = prodService.deleteById(id); if (product != null) { return ResponseEntity.noContent().build(); } return ResponseEntity.notFound().build(); } }
hardcodeservice.java
package com.main.AngBoot.service; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.springframework.stereotype.Service; import com.main.AngBoot.bean.Product; @Service public class ProductHardcodedService { private static List<Product>prodct = new ArrayList<>(); private static int idCounter=0; static{ // prodct.add(new Product(new Product(++idCounter,"LAPTOP",10000.00,new Date(),new Date(),"delivired"))); prodct.add(new Product(++idCounter, "Laptop", 1000.00, new Date(), new Date(), false)); prodct.add(new Product(++idCounter, "Printer", 150.00, new Date(), new Date(), true)); prodct.add(new Product(++idCounter, "Cartage", 100.00, new Date(), new Date(), false)); } public List<Product> findAll(){ return prodct; } public Product deleteById(long id){ Product product = findById(id); if(product==null) return null; if(prodct.remove(product)){ return product; } return null; } public Product findById(long id) { // TODO Auto-generated method stub for (Product product : prodct) { if(product.getId()==id){ return product; } } return null; } }
product.java
package com.main.AngBoot.bean; import java.util.Date; import javax.persistence.Entity; import javax.persistence.Id; import lombok.Data; @Entity public class Product { @Id private long id; private String productname; private Double price; private Date orderDate; private Date deliverDate; private boolean isDone; public Product(long id, String productname, Double price, Date orderDate, Date deliverDate, boolean isDone) { super(); this.id = id; this.productname = productname; this.price = price; this.orderDate = orderDate; this.deliverDate = deliverDate; this.isDone = isDone; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + (int) (id ^ (id >>> 32)); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Product other = (Product) obj; if (id != other.id) return false; return true; } public long getId() { return id; } public void setId(long id) { this.id = id; } public String getProduct() { return productname; } public void setProduct(String product) { this.productname = product; } public Double getPrice() { return price; } public void setPrice(Double price) { this.price = price; } public Date getOrderDate() { return orderDate; } public void setOrderDate(Date orderDate) { this.orderDate = orderDate; } public Date getDeliverDate() { return deliverDate; } public void setDeliverDate(Date deliverDate) { this.deliverDate = deliverDate; } public boolean isDone() { return isDone; } public void setDone(boolean isDone) { this.isDone = isDone; } }
Sandeep Mewara
Попробуйте: ResponseEntity<Long> Как тип возврата для deleteProduct
Sandeep Mewara
Также,
Кроме того, попробуйте эти типы возвращаемых данных:
возврат нового ResponseEntity<>(HttpStatus.NOT_FOUND);
возвращает новый ResponseEntity<>(id, HttpStatus.ОК);
ZurdoDev
Это означает, что ваш метод удаления настроен на использование post, а не get.