1. ホーム
  2. spring

[解決済み] Spring Boot ホワイトラベルエラーページの削除

2022-04-22 09:58:19

質問

私はホワイトラベルのエラーページを削除しようとしているので、私が行ったことは、"/error"のコントローラマッピングを作成しました。

@RestController
public class IndexController {

    @RequestMapping(value = "/error")
    public String error() {
        return "Error handling";
    }

}

しかし、今、私はこのエラーが出ています。

Exception in thread "AWT-EventQueue-0" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource   [org/springframework/web/servlet/config/annotation/DelegatingWebMvcConfiguration.class]: Invocation  of init method failed; nested exception is java.lang.IllegalStateException: Ambiguous mapping found. Cannot map 'basicErrorController' bean method 
public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>>  org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletR equest)
to {[/error],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}: There is already 'indexController' bean method

何か間違ったことをしているのかわかりません。アドバイスお願いします。

EDIT

すでに追加されている error.whitelabel.enabled=false を追加しても、同じエラーが発生します。

解決方法を教えてください。

以下のコードに変更する必要があります。

@RestController
public class IndexController implements ErrorController{

    private static final String PATH = "/error";

    @RequestMapping(value = PATH)
    public String error() {
        return "Error handling";
    }

    @Override
    public String getErrorPath() {
        return PATH;
    }
}

Spring Boot が自動的に BasicErrorController の実装を指定していない場合は、Spring Beanとして使用することができます。 ErrorController .

この事実を確認するには、次の場所に移動します。 ErrorMvcAutoConfiguration.basicErrorController こちら .