Ich habe zwei Spring-Web-Dienste, die über http kommunizieren sollten. Beide laufen auf meinem Rechner in dcoker containern über openjdk: 8-jre-alpine. Hier ist die POST-Abfrage, die mit fehlschlägt "Connection refused":Docker Container Kommunikation über http
public String createPost(int playerCount) {
String uri = URI + "/create";
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(uri)
.queryParam("playerCount", playerCount);
HttpEntity<?> entity = new HttpEntity<>(headers);
ResponseEntity<String> response = rest.exchange(
builder.build().encode().toUri(),
HttpMethod.POST,
entity,
String.class);
logger.info("Create request");
return response.getBody();
}
URI ist http://localhost:8090/game
Hier entspricht Steuerung anderer Service:
@RequestMapping(
path = "create",
method = RequestMethod.POST,
consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
@ResponseStatus(HttpStatus.OK)
public ResponseEntity<Long> create(@RequestParam("playerCount") int playerCount) {
long gameId = gameService.create(playerCount);
HttpHeaders headers = new HttpHeaders();
headers.add("Access-Control-Allow-Origin", "*");
return new ResponseEntity<>(gameId, headers, HttpStatus.OK);
}
ich einfach bin mit beiden Behälter mit run -p 8080:8080
und ' 8090: 8090 '. Und wie ich schon sagte "Verbindung abgelehnt" Wie man Kommunikation richtig einrichten?
HINWEIS: es funktioniert gut, wenn ich es mit Intellij laufen lasse.
haben einen Blick auf [diese SO Beitrag] (https://stackoverflow.com/questions/19897743/exposing-a-port-on-a-live-docker-container) – DevDio