[Spring] Caused by: java.lang.IllegalArgumentException: 이름이 {fragment}인, 둘 이상의 fragment들이 발견되었습니다.

Caused by: java.lang.IllegalArgumentException: 이름이 {fragment}인, 둘 이상의 fragment들이 발견되었습니다. 이는 상대적 순서배열에서 불허됩니다. 상세 정보는 서블릿 스펙 8.2.2 2c 장을 참조하십시오. 절대적 순서배열을 사용하는 것을 고려해 보십시오.

 

Spring MVC가 포함되어 있는 상태에서 중복된 디펜던시를 추가하면서 발생한 에러이다. 라이브러리 버전업, 혹은 신규 라이브러리 추가 시 주로 발생하는 현상으로, 메이븐 클린을 통해 메이븐 리포지토리를 정리하면 된다.

 

메이븐 클린(프로젝트 우클릭 > maven > maven clean)

 

그래도 안된다면 실제로 중복된 라이브러리를 정렬 혹은 정리가 필요하다.

  • Spring framework의 경우 web.xml에 <display-name>에 <absolute-ordering /> 추가하여 절대순서로 정렬
  • SpringBoot의 경우 중복된 메이븐 디펜던시 정리