Агент 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