17

我们在我们的应用程序中使用 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 上运行。如果主机名设置为非数值,它可以正常工作。

我尝试在 /etc/hosts 和 /etc/sysconfig/network 中设置主机名,它仍然不起作用。我还尝试将以下属性设置为服务器 ip 地址,但它仍然不起作用。-Djava.rmi.server.hostname=${IP}

如果您遇到任何此类问题,请告诉我。谢谢。

4

5 回答 5

29

我也有同样的问题,但我发现:
原因是tomcat试图绑定到一个IP,所以它不使用localhost,而是你的主机名。
就我而言:SUSEDesktop。所以我不得不在 /etc/hosts 中添加一个 hosts 条目:

127.0.0.1    SUSEDesktop
::1          SUSEDesktop

将 SUSEDesktop 替换为您计算机的主机名,您可以通过以下方式找到它: uname -n

于 2014-11-17T19:37:24.797 回答
16

回声“127.0.0.1 $HOSTNAME”| sudo tee -a /etc/hosts

于 2015-09-18T13:18:29.727 回答
5

我有同样的问题,最后通过将“本地”或“本地”添加到类似的/etc/hosts 东西来解决127.0.0.1 localhost Local local

于 2014-04-29T20:27:23.870 回答
5

我在 Mac 上从 Spring Tools Suite 启动 Spring-Boot 应用程序时遇到了类似的问题。它是从 Github 上 SOLR 的 Spring MVC / Spring Boot 示例下载的。

错误类似于: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(显然现在与 pinglocalhost或ping 相同127.0.0.1),spring boot 应用程序就会毫无问题地启动(来自 Spring Tools Suite UI)。

奇怪的是,spring boot 应用程序从命令行启动了 FINE:

 mvn spring-boot:run 

- 我不知道有什么区别。

于 2015-10-08T16:50:08.440 回答
0

在通过 CLI 更新主机名后面临同样的问题,但未反映在/etc/hosts. 通过将 /etc/hosts 中的旧主机名替换为sed

sed -i 's/<old_name>/<new_name>/' /etc/host
于 2019-06-17T15:53:49.073 回答