이 오류는 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가 이를 처리할 수 없다는 것~~

이러한 경우에는 다음과 같은 해결책을 시도해 볼 수 있다

  1. BuySellListController 클래스에서 'oneSizeSelling()' 메서드에 대한 URL 매핑이 중복되지 않도록 확인합니다.
  2. BuySellListController 클래스에서 'oneSizeSelling()' 메서드에 대한 URL 매핑을 변경하여 충돌을 피할 수 있습니다.
  3. 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";
		
	}

}
SMALL

'공부' 카테고리의 다른 글

메뉴 검색해서 찾기 오류  (0) 2023.04.12
다시 한번 더 볼 것  (1) 2023.01.10

+ Recent posts