首页 > 解决方案 > 尝试 resttemplate getforobject 时出现 404 错误

问题描述

我有与产品服务一起使用以获取数据(微服务)的目录服务。当我尝试在目录服务中创建 getForObject 时,出现错误 404。

    @RestController
    @RequestMapping("/catalog")
    public class ProductCatalogApi {
    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("")
    public String hello(){
        return "Heelloooo";
    }

    @GetMapping("/{category}")
    public void getProductsByCategoryName(@PathVariable String category) {
        UserProduct  userProduct = restTemplate.getForObject(
                "http://shop-product-service/shop/products" + category,
                UserProduct.class);
        System.out.println("dsdasa--------"+ userProduct);
    }

这是我的产品服务:

    @RestController
    @RequestMapping("/shop")
    public class ProductController {
    @Autowired
    ProductRepository productRepository;

    @GetMapping("/all")
    public List<Product> index(){
        return productRepository.findAll();
    }

    @GetMapping("/product/{id_product}")
    public Optional<Product> showByProductId(@PathVariable String id_product){
        return productRepository.findById(id_product);
    }

    @GetMapping("/products/{category}")
    public List<Product> showByCategoryName(@PathVariable String category){
        return productRepository.findByCategory(category);
    }

    }

因此,当我尝试创建此链接时:http://localhost:8082/catalog/electronics,我收到错误,请帮助我。

标签: javaspring-bootresttemplate

解决方案


您在 ProductCatalogApi 类中丢失了字符“/”:

restTemplate.getForObject(" http://shop-product-service/shop/products " + category, UserProduct.class);

http://shop-product-service/shop/products => http://shop-product-service/shop/products/


推荐阅读