![](/img/trans.png)
[英]Spring boot 404 not found Error message“: ”No message available
[英]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.