FeignException$Internal Server Error 기반 솔 루 션
feign 전송 오류 전송 값 을 받 을 수 없습니다.
POST 이기 때문에@RequestBody 를 추가 해서 시도 해 보도 록 하 겠 습 니 다.
해결:
오류 원인 은@RequestBody 를 추가 하지 않 았 기 때 문 입 니 다.
json 을 통 해 body 에 직접 문자열 을 보 내지 않 고@RequestBody 를 통 해 받 을 수 있 는 지 확인 해 보 세 요.
Feign 호출 에 실 패 했 습 니 다.feign.FeignException:status 500 readingXXX.LocalDate 직렬 화 오류
최근 프로젝트 에 서 는 feign 으로 서버 호출 을 해 야 합 니 다.다른 서비스의 인 터 페 이 스 를 호출 하여 제 정 보 를 보 내야 합 니 다.하지만 항상...
오류 보고:feign.FeignException:status 500 readingXXX.
내 호출 코드 는 다음 과 같다.
@PostMapping(value = "/xx/xxx")
public ResultData<String> saveProjectInfo(ProjectInfo p);
이치 대로 말 하면 문제 가 없 을 것 입 니 다.상대방 도 code 가 500 인 응답 을 되 돌려 주 었 습 니 다.요청 이 상대방 의 인터페이스 에 전달 되 었 지만 정상적으로 처리 되 지 않 았 다 는 것 을 설명 합 니 다.그래서 매개 변수 가 전송 되 지 않 았 다 고 의심 한 다음 에 디 버 깅 을 중단 하고 요청 전의 매개 변수 정 보 를'p'로 복사 하여 상대방 프로젝트 의 swagger 문 서 를 열 고 복 사 된 매개 변 수 를 보 내 면 정상적으로 통 하 는 것 을 발견 할 수 있 습 니 다.
이것 은 이상 하 다.같은 매개 변 수 는 내 가 있 는 곳 에서 feign 을 통 해 호출 하면 안 되 고 swagger 에서 직접 호출 하면 된다.그래서 여기저기 서 이 유 를 찾기 시 작 했 습 니 다.마지막 으로 다른 사람의 건의 에 따라 가방 을 잡 는 도구 로 제 호출 방법 에서 보 낸 요청 가방 을 잡 았 습 니 다.저 에 게 서 보 낸 가방 이 swagger 에서 진 매개 변수 와 똑 같은 지 확인 하 세 요.
역시 문 제 를 발 견 했 습 니 다.상대방 의 ProjectInfo 류 의 crateTime 속성 은 LocalDate 유형 이기 때 문 입 니 다.유형 이 일치 하기 위해 저 는 실체 클래스 를 만 들 때 도 createTime 속성 을 LocalDate 유형 으로 설정 합 니 다.
swagger 에서 문자열 을 직접 지 는 것 을 테스트 하면 됩 니 다.상대방 의 인 터 페 이 스 는 인 자 를 받 을 때 바로 LocalDate 로 전 환 됩 니 다.
{
.......
"createTime" : "2020-01-09"
.........
}
하지만 제 요청 이 들 어 오자 잡 은 가방 은 createTime 이 이렇게 되 었 습 니 다.이 로 인해 상대방 의 수신 매개 변수 와 일치 하지 않 아 자 연 스 럽 게 잘못 보고 했다.마지막 으로 제 ProjectInfo 실체 클래스 의 createTime 속성 을 String 형식 으로 설정 하면 됩 니 다.jar 패 키 지 를 도입 한 후에 주 해 를 사용 하여 보 낼 때 이 속성 을'yyy-MM-dd'와 같은 지정 한 형식 으로 정렬 할 수도 있 습 니 다.
한 마디 로 하면 LocalDate 와 같은 종류 에 대해 기본 값 을 json 으로 바 꿀 때 일반적인 자바 Object(yyy-MM-dd 로 바 꿀 것 으로 예상 합 니 다)로 보고 네트워크 에 보 냅 니 다.상대방 이 받 을 때 는 그런 형식 으로 제 이 슨 이 LocalDate 형식의 대상 으로 정확하게 전환 하지 못 해 잘못 보고 했다.
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java Exception 인스턴스 세부 정보 캡처 및 표시백엔드 처리 업무 논리, 백엔드 처리 전시를 책임지고 백엔드 처리에 이상이 발생할 때 어떻게 잘못된 정보를 백엔드에 전시합니까?오류 정보 창고는 통상적으로 매우 많아서 개발자가 문제를 찾는 데 비교적 편리하지만 고객...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.