簡體   English   中英

Java“錯誤”:“未找到”,“消息”:“無消息”,

[英]Java “error”: “Not Found”, “message”: “No message available”,

我使用的是小型Spring應用程序,其中數據庫中的值很少,我想使用可變調用來檢索它們。

API在這里,

@RestController
@RequestMapping("/api/v1/products")
public class ProductAPI {

    private ProductService service;

    @Autowired
    public void setService(ProductService service) {
        this.service = service;
    }


@GetMapping("/stock/")
public ResponseEntity<Product> findById(@RequestParam("productId") String productId) {

    Product product = service.findById(productId).get();
    return ResponseEntity.of(Optional.of(product));
}

...........
}

服務電話

@Service
public class ProductService {


 private ProductRepository repository;

    @Autowired
    public void setProductRepository(ProductRepository productRepository) {
        this.repository = productRepository;
    }

    public Optional<Product> findById(String id) {

       return repository.findById(id);
    }
}

存儲庫類,

@Repository
 public interface ProductRepository extends CrudRepository<Product, String>{


 }

當我使用cURL撥打電話時,收到消息,

   $ curl -X GET http://localhost:8080/api/v1/products/stock?productId=Product%20ID | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   142    0   142    0     0    845      0 --:--:-- --:--:-- --:--:--   850
{
  "timestamp": "2019-02-25T12:19:31.797+0000",
  "status": 404,
  "error": "Not Found",
  "message": "No message available",
  "path": "/api/v1/products/stock"
}

我已正確插入數據庫中的條目。 這是什么問題?

因為您的映射中有多余的/

@GetMapping("/stock/")

所以如果你想要這樣的請求

curl -X GET http:// localhost:8080 / api / v1 / products / stock /?productId = Product%20ID

您需要像這樣的映射:

@GetMapping("/stock")

在您當前的版本中,正確的卷曲看起來像:

http://localhost:8080/api/v1/products/stock/?productId=Product%20ID

由於您在控制器中已將映射清楚地稱為@GetMapping(“ / stock /”),並且當您嘗試通過路徑/ stock訪問資源時,顯然沒有此類映射。 因此,您將發現404異常。

因此,更新@GetMapping(“ / stock”)之類的映射。

學習愉快!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM