2017-11-28 7 views
0

Spring 5でRESTサービスを使用する際に問題が発生しました。シナリオ:ユーザーが画面上の1つまたは複数のフィールドを更新し、ボタンをクリックします。これはSpringコントローラを呼び出し、2つのREST呼び出しを連続して呼び出し、情報を収集してブラウザに返します。私たちの現在の生産バージョンはSpring 4を使用し、素晴らしい動作をします。しかし、5にアップグレードした後、サーバーをデバッグモードにして2つの呼び出しを行うコードの部分をデバッグしない限り、サービスの呼び出しは失敗します。私がデバッグする場合、期待どおりに動作します。デバッグしないと、RESTサービスが情報を返す前に接続を閉じたため、コードはREST呼び出しによって取得された情報を使用するため、NullPointerExceptionが発生します。おそらく、私が逃した新しい依存や、4からSpring 5にアップグレードしたときに見落としてきたことがあるかもしれませんが、このようなことは一度も見たことがありません。Spring 5 Restサービス呼び出しの問題

編集:ここではRESTサービス呼び出しを担当するコードです:

ResponseEntity<String> entity = restTemplate.exchange(url, HttpMethod.GET, null, new ParameterizedTypeReference<String>(){}); 

restTemplateがorg.springframework.web.client.RestTemplateのautowiredインスタンスです。コールが完了したかどうかにかかわらず、私は常にResponseEntityを取得します。しかし、コールが早期に終了すると、ボディデータはヌルです。これは間違っています。呼び出しによって返されるボディデータは常に存在し、Spring 4は常にそれを正しくキャプチャします。 Spring 5は、コードをデバッグするときにのみ正しくキャプチャしますが、通常の実行中は失敗します。キャプチャされたデータを調べると、これが表示されます。

+3

あなたは通話方法を共有できますか?どのようにサービス呼び出しが失敗するか?例外を共有してください –

+2

もしあなたがSOの助けを求めているなら、いつもいくつかのコードを投げてください。 –

答えて

0

解決策が見つかりました - この問題は、おそらくJDKのバージョンにあります。リクエストファクトリをHttpComponentsClientHttpRequestFactoryに切り替えました。問題は解決しました。

関連する問題