原因:java.lang.IllegalStateException:不明确的映射。无法映射"com.sportswin.soa.spark.controller.ISparkGameUserCont



今天,当我启动春季启动项目时,显示如下错误:

2022-01-21 14:52:04.659 ERROR 1 --- [           main] o.s.boot.SpringApplication               : Application run failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'webMvcRequestHandlerProvider' defined in URL [jar:file:/root/soa-spark-service-1.0.0-SNAPSHOT.jar!/BOOT-INF/lib/springfox-spring-webmvc-3.0.0.jar!/springfox/documentation/spring/web/plugins/WebMvcRequestHandlerProvider.class]: Unsatisfied dependency expressed through constructor parameter 2; nested exception is 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 'com.sportswin.soa.spark.controller.ISparkGameUserController' method 
public abstract com.sportswin.soa.misc.contract.response.Response com.sportswin.soa.spark.controller.ISparkGameUserController.sparkGameUserFirstVote(com.sportswin.soa.spark.contract.request.vote.SparkGameUserVoteRequest)
to {POST /spark/game/user/vote/first}: There is already 'sparkGameUserController' bean method
public com.sportswin.soa.misc.contract.response.Response com.sportswin.soa.spark.controller.impl.SparkGameUserController.sparkGameUserFirstVote(com.sportswin.soa.spark.contract.request.vote.SparkGameUserVoteRequest) mapped.
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:769) ~[spring-beans-5.1.13.RELEASE.jar!/:5.1.13.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:218) ~[spring-beans-5.1.13.RELEASE.jar!/:5.1.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1340) ~[spring-beans-5.1.13.RELEASE.jar!/:5.1.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1186) ~[spring-beans-5.1.13.RELEASE.jar!/:5.1.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) ~[spring-beans-5.1.13.RELEASE.jar!/:5.1.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) ~[spring-beans-5.1.13.RELEASE.jar!/:5.1.13.RELEASE]

我检查了代码,没有发现Controller两个方法定义的路径相同。这是其余控制器的方法定义:

@GetMapping("/vote/first/{gameId}")
Response<List<SparkGameUserVoteFirstResponse>> queryFirstVoteSparkGameUser(@PathVariable(value = "gameId") Long gameId);
@PostMapping("/vote/first")
Response sparkGameUserFirstVote(@RequestBody  @Valid SparkGameUserVoteRequest request);

为什么会发生这种事?我该怎么修?我感觉控制器两次启动。

尝试在文本上运行全局文本搜索"投票/优先";?(根据错误消息,你可能在这个控制器上有一个api前缀"/spark/game/user"。也许其他地方也会产生联系的api"/spark/game/user/votel/first"(

相关内容

最新更新