Я пытаюсь вызвать службу vertx из службы весенней загрузки, и обе службы развернуты в openshift; но получил это исключение:
2020-04-28 03: 25: 12.556 ОШИБКА 1 --- [nio-8080-exe c -1] oa c. c. C. [. [. [/]. [DispatcherServlet]: Servlet.service () для сервлета [dispatcherServlet] в контексте с путем [] вызвала исключение [Ошибка обработки запроса; вложенное исключение: org.springframework.web.client.ResourceAccessException: ошибка ввода-вывода при запросе GET для «http://vertx-service: 8080 / »: истекло время ожидания соединения (истекло время ожидания соединения); вложенное исключение: java. net .ConnectException: Тайм-аут соединения (Тайм-аут соединения)] с root причиной java. net .ConnectException: Тайм-аут соединения (Тайм-аут соединения) ...
Этот код используется для вызова службы из приложения весенней загрузки:
RestTemplate template = new RestTemplate();
String url = "http://vertx-service:8080/"; // I'm using discovery pattern here
String response = template.getForEntity(url, String.class).getBody());
Это код приложения vertx:
public class SimpleWebVerticle extends AbstractVerticle {
@Override
public void start() throws Exception {
Router router = Router.router(vertx);
router.get("/").handler(this::handleGet);
router.route().handler(BodyHandler.create());
vertx.createHttpServer().requestHandler(router::accept).listen(8080);
}
private void handleGet(RoutingContext routingContext) {
routingContext.vertx().<String>executeBlocking(future -> {
String response;
CompletableFuture<String> cf = CompletableFuture.supplyAsync(
() -> {
String res = "Hello from VertX! Server name: "
+ System.getenv().getOrDefault("HOSTNAME", "unknown");
return res;
});
try {
response = cf.get();
} catch (InterruptedException | ExecutionException e) {
response = e.getMessage();
}
future.complete(response);
}, false, result -> {
routingContext.response()
.putHeader("Content-Type", "text/plain")
.end(result.result());
});
}
}
Дополнительная информация: также разработали службу API-шлюза, использующую swagger для вызова служб, и получили успех от службы весенней загрузки, но получили ответ (откат) от службы vertx.
Используемые версии: Spring Boot 2.2, Vertx 3.3, Minishift 3.11