728x90
Swagger-ui 상위 버전 사용시 나타나는 java.lang.NumberFormatException: For input string: "" 에러에 대해 댓글로 정리해두신 분이 있어서 가져와 정리했습니다.
출처 : https://lemontia.tistory.com/1000#comment12661887 댓글
----------------------------------------------------------------------------------------------------------------------------------
java.lang.NumberFormatException: For input string: ""
이 에러를 해결하기 위해 다운 그레이드를 하는 것이 아니라 버전업 된 명세에 맞춰 사용해야합니다.
위 오류는 Integer 나 int 등 숫자(Number) 타입으로 된 필드나 매개변수에서 발생하는 것으로,
컨트롤러 내 메서드의 ApiImplicitParam 속성 중 example 속성에 값을 주면 됩니다.
그냥 간단히 @ApiImplicitParam(example = "1") 로 추가합니다.
코드로 예를 들면
@Getter
@ToString
public class RequestMemberSignup {
@ApiModelProperty(value = "이름", required = true)
private String name;
@ApiModelProperty(value = "나이")
private int age; //int 로 변경
}
age가 int 타입일 때
age가 String 이면 경고가 뜨지 않습니다. 그래서 타입을 int 로 변경해서 위 경고가 발생하게 만들었고, 이때 해결 방법은 아래 코드에 작성하였습니다.
@ApiOperation(value = "회원가입")
@ApiImplicitParams({
@ApiImplicitParam(name = "name", value = "이름입력", required = true, dataType = "string", paramType = "query", defaultValue = ""),
@ApiImplicitParam(name = "age", value = "나이입력", required = true, example="10") // -> example 만 추가하면 끝!
})
@PostMapping("/swagger/signup")
public ResponseSwaggerPage1 signup(@RequestBody RequestMemberSignup request) {
System.out.println("request = " + request);
return new ResponseSwaggerPage1("success", "성공");
}
example 필드에는 어떤 숫자 형태가 들어가나 예제 값을 적어주면 됩니다.
728x90
댓글