我们在我们的应用程序中使用tomcat 7.0.27。我们在tomcat启动时设置jmx属性。
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port = 8666 -Dcom.sun.management.jmxremote.ssl = false -Dcom.sun.management.jmxremote.authenticate = false
如果运行此tomcat的centOS服务器主机名设置为所有数值,如005056940096,则tomcat无法启动。它给出了以下例外。
错误:代理抛出异常:java.net.MalformedURLException:本地主机名未知:java.net.UnknownHostException:005056940096:005056940096服务器正在centOS6上运行。如果hostname设置为非数字值,则它可以正常工作。
我尝试在/ etc / hosts和/ etc / sysconfig / network中设置主机名,但它仍然无效。我也尝试将下面的属性设置为服务器IP地址,但它仍然无法正常工作。 -Djava.rmi.server.hostname = $ {} IP
如果您遇到任何此类问题,请告诉我。谢谢。
我也有同样的问题,但我发现: 原因是tomcat尝试绑定到IP,因此它不使用localhost,而是使用主机名。 在我的情况下:SUSEDesktop。所以我不得不在/ etc / hosts中添加一个hosts条目:
127.0.0.1 SUSEDesktop
::1 SUSEDesktop
将SUSEDesktop替换为您的计算机的主机名,您可以使用以下命令找到它:uname -n
echo“127.0.0.1 $ HOSTNAME”| sudo tee -a / etc / hosts
我有同样的问题,最后解决了添加“本地”或“本地”到/etc/hosts
像127.0.0.1 localhost Local local
的东西
我在Mac上从Spring Tools Suite启动Spring-Boot应用程序时遇到了类似的问题。它是从一个Spring MVC / Spring Boot示例下载,用于关闭Github的SOLR。
错误是这样的:java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException:XXXXXXX-221227.this.that.foo.other
通过将这两行添加到我的Mac上的/private/etc/hosts
文件中,问题就消失了。不需要“重新”网络接口。
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
(显然现在与ping localhost
或127.0.0.1
相同)春启动应用程序启动(从Spring Tools Suite UI)没有问题。
奇怪的是,Spring启动应用程序从命令行启动FINE:
mvn spring-boot:run
- 我不知道差异是什么。
通过CLI更新主机名后面临同样的问题,未反映在/etc/hosts
中。通过使用sed
替换/ etc / hosts中的旧主机名来解决:
sed -i 's/<old_name>/<new_name>/' /etc/host