У меня есть два артефакта, которые включены в основной проект. Первый содержит пакет com.parent.controller. Второй - com.child.controller. Каждый пакет содержит один контоллер - ParentController и ChildContoller, соответственно. Оба они имеют одинаковый RequestMapping (например, просто /abc). Также я включил фильтр для исключения ParentController. Но в любом случае у меня ловится исключение:
java.lang.IllegalStateException: Ambiguous mapping. Как это можно исправить?
@SpringBootConfiguration
@EnableAutoConfiguration
@EntityScan(basePackages = {"com.parent", "com.child"})
@ComponentScan(basePackages = {"com.parent", "com.child"}, excludeFilters = {
@ComponentScan.Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@ComponentScan.Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class),
@ComponentScan.Filter(type = FilterType.REGEX, pattern = "com\\.parent\\..*Controller"),
@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = ParentController.class)
})
Тут два варианта
Вам нужно создать отдельный маппинг для ParentController и Childcontroller
@Controller("/parent")
public class ParentController
@Controller("/child")
public class ChildController
И потом уже, исходя из общего маппинга в контроллере, присваивать свой "/abc"
Если это не помогло, то поменяйте свой
@RequestMapping(name="/abc")
на
@RequestMapping(value="/abc")
Сборка персонального компьютера от Artline: умный выбор для современных пользователей