on
Error starting ApplicationContext. To display the conditions report...
Error starting ApplicationContext. To display the conditions report...
※ 해결 내용은 맨 마지막에 있음 ※
객체지향적사고와 프로그래밍 수업을 듣던 중 이와 같은 에러가 발생하였다.
교수님이 설명해주신 코드를 똑같이 작성했는데,
나만 이런 오류가 발생한 것이다.
특히 @RestController를 주석처리 해제하고
진행했더니 발생한 오류였다,,,
( 그 전에는 잘만 됐는데,, 왜그려,,)
오류내용은 다음과 같다.
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2021-12-02 13:15:47.039 ERROR 28612 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'application' method com.example.PetAppMidterm.Application#feedDog(Long) to {PUT [/pets/{petId}/feed]}: There is already 'application' bean method com.example.PetAppMidterm.Application#feedCat(Long) mapped. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804) ~[spring-beans-5.3.12.jar:5.3.12] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) ~[spring-beans-5.3.12.jar:5.3.12] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.12.jar:5.3.12] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.12.jar:5.3.12] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.12.jar:5.3.12] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.12.jar:5.3.12] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.12.jar:5.3.12] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944) ~[spring-beans-5.3.12.jar:5.3.12] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) ~[spring-context-5.3.12.jar:5.3.12] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.12.jar:5.3.12] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) ~[spring-boot-2.5.6.jar:2.5.6] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-2.5.6.jar:2.5.6] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434) ~[spring-boot-2.5.6.jar:2.5.6] at org.springframework.boot.SpringApplication.run(SpringApplication.java:338) ~[spring-boot-2.5.6.jar:2.5.6] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-2.5.6.jar:2.5.6] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1332) ~[spring-boot-2.5.6.jar:2.5.6] at com.example.PetAppMidterm.Application.main(Application.java:31) ~[classes/:na] Caused by: java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'application' method com.example.PetAppMidterm.Application#feedDog(Long) to {PUT [/pets/{petId}/feed]}: There is already 'application' bean method com.example.PetAppMidterm.Application#feedCat(Long) mapped. at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.validateMethodMapping(AbstractHandlerMethodMapping.java:669) ~[spring-webmvc-5.3.12.jar:5.3.12] at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.register(AbstractHandlerMethodMapping.java:635) ~[spring-webmvc-5.3.12.jar:5.3.12] at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.registerHandlerMethod(AbstractHandlerMethodMapping.java:332) ~[spring-webmvc-5.3.12.jar:5.3.12] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.registerHandlerMethod(RequestMappingHandlerMapping.java:395) ~[spring-webmvc-5.3.12.jar:5.3.12] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.registerHandlerMethod(RequestMappingHandlerMapping.java:76) ~[spring-webmvc-5.3.12.jar:5.3.12] at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lambda$detectHandlerMethods$2(AbstractHandlerMethodMapping.java:299) ~[spring-webmvc-5.3.12.jar:5.3.12] at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:723) ~[na:na] at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.detectHandlerMethods(AbstractHandlerMethodMapping.java:297) ~[spring-webmvc-5.3.12.jar:5.3.12] at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.processCandidateBean(AbstractHandlerMethodMapping.java:266) ~[spring-webmvc-5.3.12.jar:5.3.12] at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.initHandlerMethods(AbstractHandlerMethodMapping.java:225) ~[spring-webmvc-5.3.12.jar:5.3.12] at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.afterPropertiesSet(AbstractHandlerMethodMapping.java:213) ~[spring-webmvc-5.3.12.jar:5.3.12] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.afterPropertiesSet(RequestMappingHandlerMapping.java:206) ~[spring-webmvc-5.3.12.jar:5.3.12] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) ~[spring-beans-5.3.12.jar:5.3.12] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.j800) ~[spring-beans-5.3.12.jar:5.3.12] ... 16 common frames omitted
Cannot map 'application' method
com.example.PetAppMidterm.Application#feedDog(Long)
to {PUT [/pets/{petId}/feed]}: There is already 'application' bean method
에러문을 살펴보면,
이와 같은 내용이 있다.
코드를 살펴보니,
바보같이 같은 path를 작성한 것이 아니겠는가.
//path 부분이 잘못되어 있던 것임,,, 아무리 생각해도 왜 같은 것으로 할 생각을 했지 바보임 @RequestMapping(method = RequestMethod.PUT, path="cats/{petId}/feed") public String feedCat(@PathVariable(value = "petId") Long petId){ return feed(petId); } @RequestMapping(method = RequestMethod.PUT, path="dogs/{petId}/feed") public String feedDog(@PathVariable(value = "petId") Long petId){ return feed(petId); }
다시 변경해주니 잘 되는 것을 확인 할 수 있다.
아직까지 에러문을 보는 것이 어렵고,
구글링을 계속하고 있지만,
영어와 코딩공부를 열심히해서
에러문을 잘 잡을 수 있도록 노력해야겠다.
끝!!!
from http://monynony0203.tistory.com/13 by ccl(A) rewrite - 2021-12-02 14:01:06