Весенний загрузочный адрес и проблема номера порта - PullRequest
0 голосов
/ 23 апреля 2020

Я искал возможную root причину проблемы, о которой сообщалось здесь (поток SO) - Невозможно запустить сервер Tomcat v9.0 в затмении .

Пока возится выше ( не имеет отношения к вышеупомянутой теме), случайно, вместо

server.port=8080

, который я поместил ниже в моем файле application.properties

server.address=8080

Когда я пытался запустить сервер, я продолжал получать эту ошибку прежде чем я понял опечатку.

***************************
APPLICATION FAILED TO START
***************************

Description:

Web server failed to start. Port 8080 was already in use

Когда я заменил «адрес» на «порт», все работало нормально.

Вопрос: Это ожидаемое поведение или известный дефект или возможный новый дефект? Если это новый дефект, где я могу сообщить об этом в Spring Community?

ОБНОВЛЕНИЕ

Согласно комментариям на трекере проблем github https://github.com/spring-projects/spring-boot/issues/21101 , это исправлено сейчас, и исправление будет выпущено в следующем выпуске 2.2.7

1 Ответ

0 голосов
/ 23 апреля 2020

Spring Boot не удалось привязать сервер к неверному адресу 8080.

И сообщение по умолчанию:

Не удалось запустить веб-сервер. Порт 8080 уже используется

Вы можете попытаться установить

server.addresss=9090

, и вы получите то же сообщение.

Сообщение об ошибке просто вводит в заблуждение.

Сообщение генерируется в PortInUseFailureAnalyzer

И здесь выдается исключение PortInUseException:

public void start() throws WebServerException {
    synchronized (this.monitor) {
        if (this.started) {
            return;
        }
        try {
            addPreviouslyRemovedConnectors();
            Connector connector = this.tomcat.getConnector();
            if (connector != null && this.autoStart) {
                performDeferredLoadOnStartup();
            }
            checkThatConnectorsHaveStarted();
            this.started = true;
            logger.info("Tomcat started on port(s): " + getPortsDescription(true) + " with context path '"
                    + getContextPath() + "'");
        }
        catch (ConnectorStartFailedException ex) {
            stopSilently();
            throw ex;
        }
        catch (Exception ex) {
            if (findBindException(ex) != null) {
                throw new PortInUseException(this.tomcat.getConnector().getPort());
            }
            throw new WebServerException("Unable to start embedded Tomcat server", ex);
        }
        finally {
            Context context = findContext();
            ContextBindings.unbindClassLoader(context, context.getNamingToken(), getClass().getClassLoader());
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...