首页 > 解决方案 > 如何从@FeignClient 接口(@RequestParam)发送字符串和 JsonNode 参数?

问题描述

我有microservice employee一个休息终点

/lookups 方法是这样的:

@GetMapping("/lookups")
public ResponseEntity<Long> search(
@RequestParam("searchValue") String searchValue,
@RequestParam("externalMap") JsonNode externalMap
) {
        Long searchResult = 2L; //calls searchService(searchValue,externalMap); to get 2L value from DB
        return ResponseEntity.ok(searchResult);
    }

我正在使用一个界面@FeignClient

@FeignClient (name="employee")
public interface EmployeeService {
    @GetMapping("/lookups")
    Long lookupEmployeeService(@RequestParam(value = "searchValue") String searchValue,
            @RequestParam(value = "externalMap") JsonNode externalMap);

}

第二个服务(具有@FeignClient注释的服务)构建并启动,没有任何例外。

但是,当我使用该服务EmployeeService通过传递来获取 Long 值时:

String searchValue和一个JsonNode externalMap

我得到例外: HTTP/1.1 400 Bad Request (2726ms)

问题:

1.调用此服务并从中获取返回值的正确方法是什么Employee Service

2.Signature 1st service的搜索方式需要更改吗?

3.我该如何克服这个错误?

任何帮助表示赞赏。提前致谢。

标签: javaspring-bootmicroservicesfeign

解决方案


推荐阅读