Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 리눅스
- map
- 프로그래머스
- 리눅스마스터 3과목
- 문자열
- 리눅스마스터 1급 정리
- toCharArray
- Kotlin
- 월간코드챌린지
- 자바
- 스프링 빈
- 연습문제
- 백준 java
- 카카오
- JavaScript
- Memoir
- 백준 javascript
- 코테
- Linux
- Java
- 리눅스마스터1급
- 개발자 회고록
- GoingBus
- 스프링 컨테이너
- java 백준 1차원 배열
- 반복문
- 코딩테스트
- 명령어
- 자바스크립트 코딩의 기술
- 고잉버스
Archives
- Today
- Total
hoon's bLog
Spring Error | org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration: Invocation of init method fa.. 본문
IT/Error
Spring Error | org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration: Invocation of init method fa..
개발한기발자 2023. 2. 3. 19:13반응형
Error 발생 경로
Spring Build 후 기동 중에, 다음과 같은 Error가 발생!!
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'requestMappingHandlerMapping' defined in org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'WeatherController' method...생략...to {[/weather/district], methods=[GET]}: There is already 'ApiController' bean method...생략...
Error 발생 코드
@RequestMapping(value = {"/district/list"}, method = {RequestMethod.GET}, produces = Constants.PRODUCES_JSON)
@ResponseStatus(HttpStatus.OK)
@ResponseBody
public void listDistrictInfo (
@RequestHeader(value="svcInfo" , required=true) final String svcInfo,
@RequestHeader(value="authToken", required=true) final String authToken
) {
//-- Phase01 : Get Request-Data
//
Map<String, Object> paramMap = getRequestParameterInfo();
//
paramMap = Common.mergeMapInfo(paramMap, request);
//-- Phase02 : Write Api-Call-Log
//
writeApiCallLog(paramMap);
//-- Phase04 : Call Service Business
//
String result;
//
try {
result = weatherService.listWeatherDistrict(paramMap);
} catch (RuntimeException ex) {
throw ex;
}
//-- Phase05 : Response-Output
//
displayResponseData(paramMap, result);
}
@RequestMapping(value = {"/district/list"}, method = {RequestMethod.GET}, produces = Constants.PRODUCES_JSON)
@ResponseStatus(HttpStatus.OK)
@ResponseBody
public void viewWeatherInfo (
@RequestHeader(value="svcInfo" , required=true) final String svcInfo,
@RequestHeader(value="authToken", required=true) final String authToken
) {
//-- Phase01 : Get Request-Data
//
Map<String, Object> paramMap = getRequestParameterInfo();
//
paramMap = Common.mergeMapInfo(paramMap, request);
//-- Phase02 : Write Api-Call-Log
//
writeApiCallLog(paramMap);
//-- Phase04 : Call Service Business
//
String result;
//
try {
result = weatherService.viewWeatherInfo(paramMap);
} catch (RuntimeException ex) {
throw ex;
}
//-- Phase05 : Response-Output
//
displayResponseData(paramMap, result);
}
해결
예외 로그를 자세히 보면 나와있지만, Spring Build 후 기동 시, 특정 맵핑 경로가 중복되어 발생한 Error!!
만약 Spring MVC를 사용한 Web Application 기동시, @RequestMapping URI를 반드시 확인해 봐야 한다!
위 코드에서는 @RequestMapping value의 URI가 /district/list 로 중복되어 위와 같은 Error가 발생했다!
각 경로와 기능에 맞게 URI만 변경해주면 끝!
결론
굉장히 기초적인 Error 중에 하나다.
그럼에도, 같은 실수를 반복하는 것을 줄이기 위해 기록하기로 마음먹었다.
연차가 올라갈수록, 이런 사소한 실수는 줄이는게 정신건강에 좋다!! 😅
참고 : https://zzznara2.tistory.com/422
언제나 새로운 정보 공유와 잘못된 정보
비판/지적/태클은 환영입니다!
끝:)
728x90
반응형