ㅇ.ㅇ
[Java] Error - Invalid property 'maxWait' of bean class 본문
반응형
상황
예전 브랜치에서 작업했던 내용들을 깃 cherry-pick을 사용해서 가장 최신 브랜치를 기준으로 커밋하는 작업을 하고 있었다.
에러 내용
org.springframework.beans.NotWritablePropertyException: Invalid property 'maxWait' of bean class [org.apache.tomcat.dbcp.dbcp2.BasicDataSource]: Bean property 'maxWait' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
문제 원인
이 에러는 BasicDataSource 클래스에서 'MaxWait' 프로퍼티를 사용할 수 없다는 것을 뜻한다. 뭐 뒤까지 읽어보면 세터의 매개변수 유형이 게터의 반환 유형과 일치하는지 물어보는데, 구글링을 해보니 보통 유형을 다르게 지정해둬서 같은 에러가 많이 발생하는 것으로 보인다.
하지만 나는 'MaxWait' 프로퍼티를 사용할 수 없는 문제였다. 왜냐하면 dpcp2에서는 커넥션 풀에서 데이터베이스 연결이 사용 가능해질 때까지 최대 대기 시간을 설정하는데 사용하는 프로퍼티인 'maxWait' 대신 'maxWaitMillis' 를 사용하기 때문이다.
그래서 다음과 같이 변경해주었더니 해결되었다.
dataSource.put("maxWaitMillis", "5000");
반응형