エラー原因と対応|Spring Boot BeanCreationException: Error creating bean with name


Eclipseで、Spring Boot アプリケーションを実行したところ、エラーが発生しました。

ここでは、発生したエラーの内容と対応方法について、紹介します。

開発環境


・Windows 10 64bit

・Eclipse 2018-12(Eclipse 4.10)

・Java 8

・Spring Boot 2.1.3(Spring Tool Suite 4)


発生したエラー情報

エラー情報 - Eclipseのコンソール出力にて確認

EclipseでSpring Bootプロジェクトを右クリックして、「実行」>「Spring Boot App」を選択して、Spring Bootアプリケーションを実行すると、Eclipseのコンソールに以下のエラーが出力されました。

・エラー情報
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 'foodController' method 

public java.lang.String com.example.demo.food.FoodController.index()

to {GET [/, /index]}: There is already 'customerController' bean method

public java.lang.String com.example.demo.customer.CustomerController.index() mapped.

原因

複数のクラスで、以下のメソッドが重複して、定義されていました。(自分で作成したFoodControllerクラスとCustomerControllerクラスにindexメソッドが定義されていました。)

・クラス
com.example.demo.customer.CustomerController.class

com.example.demo.food.FoodController.class

・メソッド
@GetMapping({"/", "/index"})
public String index() {
    
    return "index";
}

対応方法

FoodControllerクラスとCustomerControllerクラスからindexメソッドを削除して、1つ上のパッケージ(com.example.demo)にコントローラを作成して、そこでindexメソッドを定義しました。




スポンサーリンク

0 件のコメント :

コメントを投稿