Не удается подключиться к встроенному серверу undertow, работающему внутри контейнера Docker - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь запустить встроенный сервер undertow внутри контейнера докера. Когда я запускаю следующий фрагмент кода на своем компьютере, я могу подключиться к конечной точке http, которая возвращает «Hello World». Но я не могу достичь конечной точки, когда я запускаю тот же код внутри контейнера докера.

public class HelloWorldServer {

    public static void main(final String[] args) {
        Undertow server = Undertow.builder()
                .addHttpListener(8080, "localhost")
                .setHandler(new HttpHandler() {
                    @Override
                    public void handleRequest(final HttpServerExchange exchange) throws Exception {
                        exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "text/plain");
                        exchange.getResponseSender().send("Hello World");
                    }
                }).build();
        server.start();
    }
}

Я нашел приведенный выше пример по следующей ссылке http://undertow.io/undertow-docs/undertow-docs-1.4.0/index.html

Это все следующие команды, которые я выполняю для построения и запуска контейнера.

docker build -t z .
docker run -d -p 8080:8080 -t z

1 Ответ

0 голосов
/ 04 июня 2019

Серверу undertow не удалось связать прослушиватель http с IP-адресом моей машины.вместо указания

localhost

я изменил на

InetAddress.getLocalHost().getHostAddress()

, что связывает слушателя с IP-адресом моей машины.Теперь я могу попасть в конечную точку.

...