一、问题描述

Spring项目,开发单元测试的时候莫名报错:

java.lang.IllegalStateException: Failed to load ApplicationContext

    at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
    at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
    at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary

二、问题原因:

查阅很多资料,发现这个提示只是一个总括,具体问题需要看更加详细的报错,主要观察caused by后面的内容,是根本原因。

Caused by: java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'ApiController' method 
public java.util.List<com.db.api.entity.UploadFile> com.db.api.controller.PgsqlApiController.getFilesInFolder(java.lang.String)
to {[/db/search]}: There is already 'ApiController' bean method

查看到Caused by之后,发现根本原因是controller里面的两个方法的注解@RequestMapping(value = "/search")是重复的路径。这个copy出bug了,很尴尬~

三、解决问题

查到问题原因就很容易解决了,把第二个方法的@RequestMapping中的路径修改为对应路径即可。

四、总结

查看问题要追本溯源,再报错Failed to load ApplicationContext,则主要查找下面的Caused by查看根本报错原因。

五、参考

1.https://blog.csdn.net/qq_41247433/article/details/79330275

 


 

Logo

一站式 AI 云服务平台

更多推荐