1

別のサーバーで REST API への RestTemplate 呼び出しを実行しようとしているコードがいくつかあります。

String url = "http://$authUrl:$authPort/cdpe/users/current";
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.add("Cookie", rdgLogin.getName() + "=" + rdgLogin.getValue());
requestHeaders.add("Cookie", jsessionId.getName() + "=" + jsessionId.getValue());
RestTemplate restTemplate = new RestTemplate();
HttpEntity requestEntity = new HttpEntity(null, requestHeaders);

ResponseEntity<String> resp = restTemplate.exchange(url, HttpMethod.GET, requestEntity, String.class);

サーバーは、ポート 8080 の別のマシン「restserver」で稼働しています。サーバーが稼働しており、接続を待機していることを確認しました。

上記のコードを実行すると、ConnectionRefused 例外が発生します。接続が拒否されましたhttp://restserver:8080/cdpe/users/current。通常、これは URL が間違っているか、サーバーが実行されていないことを意味します。ただし、同じマシンで同じ URL を使用して curl コマンドを実行できます。

curl http://restserver:8080/cdpe/users/current

と、返事が返ってきます。これにより、RestTemplate 呼び出しに何か問題があると思われます。また、レストサーバーと同じマシンで同じコードを実行でき、正しく動作します。私が間違っていることは何か分かりますか?

4

1 に答える 1

0

私はアホです。コードの $authUrl 部分で URL をタイプミスしていたため、検出が非常に困難でした。開発者は失敗します。

于 2015-05-28T19:24:29.233 に答える