이 오류는 Spring Framework에서 발생한 오류로 보입니다. 오류 메시지를 해석해 보면 다음과 같습니다.
"org.springframework.beans.factory.BeanCreationException: 'requestMappingHandlerMapping' 빈을 생성하는 중 init 메서드 호출에 실패했습니다. 중첩 예외는 다음과 같습니다: 'java.lang.IllegalStateException: 모호한 매핑입니다. 'buySellListController' 메서드를 매핑할 수 없습니다. com.greedy.thunderbolts.controller.buselllist.BuySellListController#oneSizeSelling() 메서드입니다."
이 오류는 즉, 'BuySellListController' 클래스의 'oneSizeSelling()' 메서드에 대한 매핑이 모호하다는 것을 나타낸다.
이 메서드를 호출하는 두 개 이상의 URL 매핑이 있어서 Spring Framework가 이를 처리할 수 없다는 것~~
이러한 경우에는 다음과 같은 해결책을 시도해 볼 수 있다
- BuySellListController 클래스에서 'oneSizeSelling()' 메서드에 대한 URL 매핑이 중복되지 않도록 확인합니다.
- BuySellListController 클래스에서 'oneSizeSelling()' 메서드에 대한 URL 매핑을 변경하여 충돌을 피할 수 있습니다.
- WebMvcConfigurer 인터페이스를 구현하여 RequestMappingHandlerMapping을 직접 구성할 수 있습니다. 이렇게 하면 더 세밀한 URL 매핑 제어가 가능합니다.
이렇게 오류가 떴다.
여러가지 메서드를 매핑하려면 @RequestMapping 어노테이션을 정의해 주고
아래처럼 제일 상위인 경로 "/list" 설정해 주어야 한다.
그리고 나서 @GetMapping을 하위에 하나씩 두고 상위 경로에 대한 하위 경로를 지정해 주어야 한다.
근데 내가 @RequestMapping 어노테이션을 정의를 안해주고 그냥 상위에 컨트롤러만 적어서 오류가 났던 것.
아래처럼 코드를 바꿔보자!
package com.greedy.thunderbolts.controller.buselllist;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/list")
public class BuySellListController {
@GetMapping("/normalBuy")
public String normalBuy(){
return "common/productList/normalBuy";
}
@GetMapping("/normalSell")
public String normalSell(){
return "common/productList/normalSell";
}
@GetMapping("/oneSizeBuying")
public String oneSizeBuying(){
return "common/productList/oneSizeBuying";
}
@GetMapping("/oneSizeSelling")
public String oneSizeSelling(){
return "common/productList/oneSizeSelling";
}
}
'공부' 카테고리의 다른 글
메뉴 검색해서 찾기 오류 (0) | 2023.04.12 |
---|---|
다시 한번 더 볼 것 (1) | 2023.01.10 |