Nilnil Zen Ответов: 0

Метод запроса "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.

0 Ответов