スポンサーリンク

エラー・例外

IllegalStateException: Ambiguous mapping. Cannot map 'indexController' method

投稿日:

発生した時のログとソースコード

このように、起動時に出現するエラーです。

$ ./gradlew bootRun
Caused by: java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'indexController' method 

この時のソースコードはこちらです。

@Controller
@RequestMapping("/")
public class IndexController {

    @GetMapping("/login")
    public String index(HttpSession session)
    {
        // トップページを表示
        return "index";
    }

    @GetMapping("/login")
    public String manager(HttpSession session)
    {

        // セッションにログイン時刻をセット
        IndexControllerHelper.setLoginDatetime(session);

        // トップページを表示
        return "index";
    }
}

"/login"に対するメソッドがindexとmanagerという2つ存在しています。
Springframeworkが、どちらに対して/loginを割り当てれば良いか判断できないため、エラーとなります。

Ambiguous mapping. Cannot map 'xxxController' method とは?

Ambiguous とは「あいまいな」という意味です。
つまり、URL定義があいまいなので、xxxControllerのメソッドをURLにマップできません。
という意味になります。

URL定義があいまいというのは、1つに決められない、つまり重複があるという意味です。

解決策としては、xxxControllerで使用している、@RequestMapping/@GetMapping/@PostMapping/@DeleteMappingのURL指定が重複していないか見直してください。

xxxController内だけではなく、その他のコントローラーのURL定義とも重複していても、このエラーが発生します。

Udemyのハンズオン動画講座でSpringBootのスキルを磨く!

スポンサーリンク

-エラー・例外

Copyright© 【Spring Hack】 , 2022 All Rights Reserved Powered by AFFINGER5.