2016-08-11 17 views
1

JHipster(Spring Boot、Zuul Proxy、Ribbon ...)を介して作成されたマイクロサービスアーキテクチャを使用しています。私は2つのマイクロサービスとゲートウェイ(そしてもちろんレジストリ)を持っています。JHipster APIゲートウェイからマイクロサービスのHTTPエラーを取得する

マイクロサービスからHTTPエラーを送信するときに問題があります。ゲートウェイは、マイクロサービスからの応答を無視し、エラーコードを使用するだけで新しい応答を生成するようです。

例:

私のリクエストは、マイクロサービスでHTTP 404を生成します。直接microservice要求私は、次のレスポンスボディを持っている場合:

{ 
    "code": "DEVICE_NOT_FOUND", 
    "message": "Gateway '12345678' unknown" 
} 

Iは、(microserviceに転送)ゲートウェイを要求した場合、私は今の代わりにサービスによって生成された1次の本体を有する。

私は理解していれば、ゲートウェイがwebcallからエラーを取得するときにゲートウェイから
{ 
    "timestamp": "2016-08-11T12:50:57.432+0000", 
    "status": 404, 
    "error": "Not Found", 
    "message": "No message available" 
} 

体は、... licroserviceエラー本体から

を任意のデータが含まれていない、それが発生した「/エラー」を呼び出しますコントローラーが応答を作成します。私は自分の/エラーコントローラを実装しようとしたが、元のボディを取得できませんでした。 @ControllerAdviceコントローラを追加しようとしましたが、ゲートウェイに例外が返されず、エラーコントローラへのリダイレクトだけです

私は何かを見逃しましたか? ご協力いただきありがとうございます。

答えて

1

@GaëlMarziou[OK]

マイクロサービスレスポンスボディをキャッチし、独自のエラーボディを生成するためにErrorControllerを呼び出すZuulフィルタ(org.springframework.cloud.netflix.zuul.filters.post.SendErrorFilter)があります。私は1つのZuulフィルタ(show the solution here)を作成し、whitelabelエラーコントローラ(solution here)をオーバーライドしました。私は今、私のゲートウェイにマイクロサービスの応答本体を持っています。

ありがとうございました。

+0

JHipsterプロジェクトにgithubのプルリクエストを提案することを検討してください –

関連する問題