Агент JMX выдает java.net.MalformedURLException, когда имя хоста установлено на все числовое значение

Мы используем tomcat 7.0.27 в нашем приложении. Ниже мы устанавливаем свойства jmx при запуске tomcat.

-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port = 8666 -Dcom.sun.management.jmxremote.ssl = false -Dcom.sun.management.jmxremote.authenticate = false

Если имя хоста centOS-сервера, на котором выполняется этот tomcat, установлено на все числовое значение, например 005056940096, tomcat не запускается. Это дает ниже исключения.

Ошибка: исключение, вызванное агентом: java.net.MalformedURLException: имя локального узла неизвестно: java.net.UnknownHostException: 005056940096: 005056940096 Сервер работает на centOS6. Если имя хоста установлено на не числовое значение, оно работает правильно.

Я попробовал установить имя хоста в /etc/hosts и/etc/sysconfig/network, он все равно не работает. Я также попытался установить ниже свойства на ip-адрес сервера, но он не работает.  -Djava.rmi.server.hostname = ${IP-}

Пожалуйста, дайте мне знать, если вы столкнулись с такой проблемой. Спасибо.

Ответ 1

У меня была та же проблема, но я узнал:
Причина в том, что tomcat пытается привязываться к IP-адресу, поэтому он не использует localhost, а ваше имя хоста.
В моем случае: SUSEDesktop. Поэтому мне пришлось добавить запись хоста в /etc/hosts:

127.0.0.1    SUSEDesktop
::1          SUSEDesktop

Замените SUSEDesktop именем хоста вашего компьютера, вы можете найти его с помощью: uname -n

Ответ 2

echo "127.0.0.1 $HOSTNAME" | sudo tee -a/etc/hosts

Ответ 3

У меня была та же проблема, окончательно решена путем добавления "Local" или "local" в /etc/hosts Что-то вроде 127.0.0.1 localhost Local local

Ответ 4

У меня была аналогичная проблема с запуском приложения Spring -Boot из Spring набора инструментов на Mac. Это была загрузка из примера загрузки Spring MVC/Spring для SOLR с Github.

Ошибка была примерно такой: java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException:XXXXXXX-221227.this.that.foo.other

Добавив эти две строки в файл /private/etc/hosts на моем Mac, проблема исчезла. Нет необходимости "перезапускать" сетевых интерфейсов.

127.0.0.1       XXXXXXX-221227.this.that.foo.other

::1             XXXXXXX-221227.this.that.foo.other

Я предполагаю, что это было связано с вышеупомянутой проблемой с tomcat и числовым именем... поскольку имя моего компьютера (поставляемое корпорацией) содержало в нем номера.

В любом случае, как только я могу выполнить ping XXXXXXX-221227.this.that.foo.other (очевидно, теперь то же самое, что и pinging localhost или 127.0.0.1), началось загрузочное приложение Spring (из Spring Tools Suite UI) без проблема.

Как ни странно, загрузочное приложение Spring запустило FINE из командной строки с помощью

 mvn spring-boot:run 

- Я понятия не имею, в чем разница/была.

Ответ 5

Та же проблема возникла после обновления имени хоста через CLI, которое не было отражено в /etc/hosts. Решено заменой старого имени хоста в /etc/hosts на sed:

sed -i 's/<old_name>/<new_name>/' /etc/host