Когда я пытаюсь отправить HTTP-запрос из одного контейнера в другой, я получаю
(соединение отказано); Вложенное исключение - java.net.ConnectException
Я уверен, что причиной ошибки является неверный адрес. Хотя я проверил подобные проблемы, я не смог исправить это сам.
Dockerfile mainApp (тот, который отправляет запросы)
FROM openjdk:8
ADD target/mainApp.war mainApp.war
EXPOSE 8078
ENTRYPOINT ["java", "-jar", "mainApp.war"]
Здесь я делаю запрос
String pepAddress = "http://microservice3:8080";
public ResponseEntity<String> getUser() {
RestTemplate restTemplate = new RestTemplate();
restTemplate.setErrorHandler(new ErrorHandler());
SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 1080));
requestFactory.setProxy(proxy);
restTemplate.setRequestFactory(requestFactory);
UriComponentsBuilder builder = UriComponentsBuilder
.fromHttpUrl(pepAddress + "/getUser")
.queryParam("userId","1");
HttpEntity<?> httpEntity = new HttpEntity<>(httpHeaders);
ResponseEntity<String> result = restTemplate
.exchange(builder.toUriString(),
HttpMethod.GET,
httpEntity,
String.class);
return result;
}
SecondApp Dockerfile
FROM openjdk:8
ADD target/PEP.war PEP.war
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "PEP.war"]
И докер-compose.yml
version: '2'
services:
microservice1:
image: mainapp
expose:
- 8078
networks:
- test
microservice3:
image: pep
expose:
- 8080
networks:
- test
networks:
test:
external: true