Zuul Edge Server内でルーティングエラーが発生したときに発生するデフォルトのエラーページを無効にしようとしています。Zuulルーティングエラーのデフォルトフォールバックの設定
zuul:
routes:
ui: /**
api: /api/**
SendErrorFilterは、デフォルトで/エラーに要求を送信しようとすると、UIサービスが起動し、それが/エラーをアップ機能するよう動作しているとき、それは動作しますデフォルト:私たちはそうのような設定のルートを持っています。しかし、問題は、uiサーバーがダウンしているとき、/ errorにルーティングしようとして失敗するときです。その後、フォールバックエラーがあり、フォールバックが利用できなかったという厄介な例外が画面上に表示されます。ユーザーが厄介な例外が表示されませんので、これらのエラーを処理するためにZuulでデフォルトのフォールバックを設定するにはどうすればよい
com.netflix.zuul.exception.ZuulException: Forwarding error
org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.forward(RibbonRoutingFilter.java:140)
org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.run(RibbonRoutingFilter.java:105)
com.netflix.zuul.ZuulFilter.runFilter(ZuulFilter.java:112)
com.netflix.zuul.FilterProcessor.processZuulFilter(FilterProcessor.java:197)
com.netflix.zuul.FilterProcessor.runFilters(FilterProcessor.java:161)
com.netflix.zuul.FilterProcessor.route(FilterProcessor.java:120)
com.netflix.zuul.ZuulRunner.route(ZuulRunner.java:84)
com.netflix.zuul.http.ZuulServlet.route(ZuulServlet.java:111)
Root Cause:
com.netflix.hystrix.exception.HystrixRuntimeException: uiRibbonCommand failed and no fallback available.
com.netflix.hystrix.AbstractCommand$16.call(AbstractCommand.java:807)
com.netflix.hystrix.AbstractCommand$16.call(AbstractCommand.java:794)
rx.internal.operators.OperatorOnErrorResumeNextViaFunction$1.onError(OperatorOnErrorResumeNextViaFunction.java:77)
rx.internal.operators.OperatorDoOnEach$1.onError(OperatorDoOnEach.java:70)
rx.internal.operators.OperatorDoOnEach$1.onError(OperatorDoOnEach.java:70)
rx.internal.operators.OperatorDoOnEach$1.onError(OperatorDoOnEach.java:70)
com.netflix.hystrix.AbstractCommand$DeprecatedOnFallbackHookApplication$1.onError(AbstractCommand.java:1516)
com.netflix.hystrix.AbstractCommand$FallbackHookApplication$1.onError(AbstractCommand.java:1406)
com.netflix.hystrix.HystrixCommand$2.call(HystrixCommand.java:314)
com.netflix.hystrix.HystrixCommand$2.call(HystrixCommand.java:306)
?このopen issue on spring-cloud-netflix (#250)を見ましたが、特定のルートだけでなく、すべてのルートのデフォルトのフォールバックを処理します。これを行う正しい方法は何ですか?
デフォルトのフォールバックまたはカスタムエラーが必要ですか?あなたがデフォルトルート '/ **'をマップしたので、あなたは '/ error'を失いました。エラーページは 'server.error.whitelabel.enabled = false'でオフにすることができます。 http://docs.spring.io/spring-boot/docs/current/reference/html/howto-actuator.html#howto-customize-the-whitelabel-error-page – spencergibb
カスタム500エラーのHTMLページを提供したい。だから私は、エッジサーバーからビューを返すフォールバックを作ることができると思ったが、どのように把握することはできません。 –
フォールバックはzuulでサポートされていません。あなたはポストフィルタを書くことができます。 – spencergibb