您好,登錄后才能下訂單哦!
本篇內容主要講解“SpringCloud Feign傳對象參數調用失敗怎么解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“SpringCloud Feign傳對象參數調用失敗怎么解決”吧!
不支持GET請求方式
使用Apache HttpClient替換Feign原生httpclient
@RequestBody接收json參數
bootstrap-local.yml
feign: httpclient: enabled: true
pom.xml
<!-- 使用Apache HttpClient替換Feign原生httpclient --> <dependency> <groupId>com.netflix.feign</groupId> <artifactId>feign-httpclient</artifactId> <version>8.18.0</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.3</version> </dependency>
feignClient:
@FeignClient(name = "hd-ucenter-server", fallback = SysTestServerFallbackImpl.class) public interface SysTestServer { @RequestMapping(value = "/test/test", method = RequestMethod.POST, consumes = "application/json") Object test(CurrentUser currentUser); }
RestController:
@RestController @PostMapping("/test") public class TestController { @RequestMapping(value = "/test") public Object test(@RequestBody CurrentUser currentUser) { System.out.printf("調用test\n"); return currentUser; } }
因為 cloud內部拋出異常不進行處理,Feign獲取spring默認包裝異常結果如下:
{
"timestamp": "2017-12-27 15:01:53",
"status": 500,
"error": "Internal Server Error",
"exception": "com.keruyun.loyalty.commons.master.exception.BusinessException",
"message": "Request processing failed; nested exception is {\"code\":1000, \"message\":\"test Exception\"}",
"path": "/coupon/cloud/commercial/8469"
}
自定義的異常處理下返回狀態
@Slf4j @RestControllerAdvice public class GlobalExceptionHandlerResolver { //內部服務異常處理 @ExceptionHandler(InternalApiException.class) public ResultResp<?> handleGlobalException(HttpServletResponse response, InternalApiException internalApiException) { ResultResp<?> resultResp = internalApiException.getResultResp(); log.error(internalApiException.getMessage(), internalApiException); response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());//返回500異常 response.setContentType(MediaType.APPLICATION_JSON_UTF8.toString()); return resultResp; } }
到此,相信大家對“SpringCloud Feign傳對象參數調用失敗怎么解決”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。