0

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)を見ましたが、特定のルートだけでなく、すべてのルートのデフォルトのフォールバックを処理します。これを行う正しい方法は何ですか?

+1

デフォルトのフォールバックまたはカスタムエラーが必要ですか?あなたがデフォルトルート '/ **'をマップしたので、あなたは '/ 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

+0

カスタム500エラーのHTMLページを提供したい。だから私は、エッジサーバーからビューを返すフォールバックを作ることができると思ったが、どのように把握することはできません。 –

+0

フォールバックはzuulでサポートされていません。あなたはポストフィルタを書くことができます。 – spencergibb

答えて

2

フォールバックは、Springクラウドの最新リリースでサポートされるようになりました。詳細については、Fallback methods at Zuul server in Spring cloud の投稿を参照してください。

+1

問題を解決する正しいリビジョン/バージョンにユーザーを誘導するために、バージョン番号を入力することを検討する必要があります。 – scicalculator

+0

ありがとうございます。春のクラウドバージョン1.2.3を確認してください.BUILD-SNAPSHOT – vasanth

+0

ありがとうございます、これを試してみます –

関連する問題