728x90
반응형
Spring boot project 하는데 List로 Parameter를 넘겼는데 List.Size가 256을 초과한다는 에러가 났다.
org.springframework.beans.InvalidPropertyException
Exception = org.springframework.beans.InvalidPropertyException:
Invalid property 'lists[256]' of bean class [...................]: Index of out of bounds
in property path 'lists[256]'; nested exception is java.lang.IndexOutOfBoundsException:
Index: 256, Size: 256 at org.springframework.beans.BeanWrapperImpl.getPropertyValue
(BeanWrapperImpl.java:814) at org.springframework.beans.BeanWrapperImpl.getNestedBeanWrapper
(BeanWrapperImpl.java:555) at org.springframework.beans.BeanWrapperImpl.
getBeanWrapperForPropertyPath(BeanWrapperImpl.java:532) at org.springframework.beans.
BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:894) at org.springframework.beans.
AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:75) at
org.springframework.validation.DataBinder.applyPropertyValues(DataBinder.java:740) at
org.springframework.validation.DataBinder.doBind(DataBinder.java:636) at
org.springframework.web.bind.WebDataBinder.doBind(WebDataBinder.java:191)
[문제해결]
아래 스프링 docs를 보면 DataBinder클래스내 DEFAULT_AUTO_GROW_COLLECTION_LIMIT 상수가 존재하는데, 이는 256으로 초기화 되어있다.
이 상수는 일반적인 DataBinder를 통해서 자바빈 생성시 beanProperties초기화시 사용되어서 256개를 제한으로 두고있다.
JAVA Controller에 @InitBinder를 선언하여 List size bind 값을 재 셋팅했다.
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.setAutoGrowCollectionLimit(100000);
}
분명 이거말고도 흠.... 다른 방법이 있을 거 같은데 이게 가장 일반적인것 같다.
다른 방법을 찾게되면 추가로 글을 작성하도록 하자.
728x90
반응형
'IT 개발 > SPRING' 카테고리의 다른 글
Spring Security 기본 로그인 화면 제거 (0) | 2024.05.05 |
---|---|
[Spring] log4j2 설정 / log4j2 사용 (1) | 2023.10.24 |
[Spring] gradle maven 하기 : implementation (org.json) 추가하기 (0) | 2023.04.21 |
[Spring] - Lombok 어노테이션 @Builder (0) | 2023.04.19 |
[Spring] - org.apache.ibatis.exceptions.TooManyResultsException 예외 (0) | 2023.04.19 |