71

我正在尝试按照本教程在 IntelliJ 中制作一个简单的 Web 应用程序: http ://wiki.jetbrains.net/intellij/Creating_a_simple_Web_application_for_Tomcat_in_IntelliJ_IDEA_12

我相信我的Tomcat安装正确,因为我去的时候看到了tomcat图片 http://localhost:8080/

我已经执行了所有步骤,直到它告诉我运行的部分index.jsp,此时我收到错误:

Error: Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: nodename nor servname provided, or not known

我在日志中看到了这一点:

Application Server was not connected before run configuration stop, reason:
           Unable to ping server at localhost:1099

这个 1099 来自 Run -> Edit Configurations 中的 JMX 端口。

我该如何解决?

4

25 回答 25

71

要解决此问题,您需要在 /etc/hosts 文件中添加您的机器名称以指向 localhost(127.0.0.1)。

您可以通过运行以下命令找到您的机器名称:

$ hostname
macbook-pro

从上面的输出中,您知道您的主机名是“macbook-pro”。编辑“/etc/hosts”文件并将该名称添加到列出 127.0.0.1 的行的末尾

127.0.0.1 localhost macbook-pro

保存文件。

现在您的 IntelliJ 应该能够启动您的服务器了。

于 2014-01-07T22:39:56.880 回答
20

看你使用的tomcat是否兼容Java版本。对我来说,问题是 Tomcat-9 需要 Java-8。如果你有旧版本的 Java,你可以使用 Tomcat-7 来测试。

于 2016-05-18T19:05:13.623 回答
7

我将我的主机名添加到本地主机上的 /etc/hosts 中。添加了 JAVA_HOME 但仍然显示相同的错误。在控制台中,有输出:

Unable to start as CATALINA_BASE contains a colon (:) character

我通过编辑配置-> 启动/连接-> 将 CATALINA_BASE 值更改为 tomcat 安装文件夹解决了这个问题。在此之前,它是

CATALINA_BASE:   C:\Program Files\Apache Software Foundation\Tomcat 8.0

这在 linux 机器上是不正确的;)

于 2015-08-11T20:19:18.597 回答
4

仅供参考 在某些网络条件下,您的主机名可能会更改或不正确。如果您在 Mac 上,以下将让您相当永久地设置您的主机名:

sudo scutil --set HostName correct-name
于 2015-02-25T21:44:46.267 回答
3

这似乎是 mac 处理读取 /etc/hosts 文件的方式的问题。参见例如http://youtrack.jetbrains.com/issue/IDEA-96865

不需要将主机名添加到主机文件作为绑定描述,但它确实解决了问题。

于 2014-04-05T00:45:17.323 回答
3

我有同样的问题。在“编辑配置..”->“Tomcat 服务器”中,我将 JRE 从“默认”更改为具有 SDK 目录地址的当前版本(如 C:\Program Files\Java\jdk1.8.0_121\jre)

我的 Tomcat 版本是 8.5.31

于 2018-06-04T15:30:11.453 回答
3

对于那些在您最近更新 IntelliJ(在我的情况下为 2019.2)时遇到此问题的人。

我正在使用 JBoss 服务器,所以我尝试在命令行中运行standalone.bat,我在控制台上看到了真正的问题。

它可能与您的不同,但就我而言,我看到了:

failure description: "WFLYSRV0137: No deployment content with

在那个错误上,我可以通过删除<deployments/>我的standalone.xml中节点内的项目(战争或耳朵)来解决这个问题

希望这对使用 JBoss+IntelliJ 的人有所帮助

于 2019-09-04T04:49:43.410 回答
3

当我在这里进入非常大的端口时遇到了类似的问题: 在此处输入图像描述

但是,当我将其更正为偏移范围内的较小值时: 在此处输入图像描述

问题已解决。

于 2017-06-28T07:53:52.577 回答
3

我的问题是tomcat 8及更高版本与java 6不兼容。更改为java 7解决了它。

于 2015-11-21T15:57:55.387 回答
2

当我配置(错误的)3 Gb 内存时,我遇到了这个错误。IntelliJ 确实在输出帧中显示了真正的错误消息(无法为对象堆保留足够的空间)。我很困惑,并被事件日志中的消息所吸引,在这种情况下将被忽略。

于 2014-12-23T17:29:14.483 回答
2

我在使用 intellij 15.0 时遇到了这个问题,然后我更新到 15.02 版本。之后,我编辑配置并将默认 JRE 重置为我自己的 JRE。它对我很有效;

于 2015-12-23T07:36:31.870 回答
1

我通过添加环境变量 JAVA_HOME(C:\Program Files\Java\jdkx.x.x_xx) 和 JRE_HOME 来解决这个问题。

于 2014-11-19T14:27:24.647 回答
1

当我使用 intellij 2016 版本时,我遇到了同样的问题“无法在 localhost:1099 ping 服务器”。

但是,一旦我将其升级到使用“ideaIU-2017.1.exe”安装的 2017 版本(终极 2017.1),问题就消失了。

于 2017-04-17T01:55:51.813 回答
1

在 IntelliJ 中设置项目的 SDK(文件 > 项目结构 > 项目:项目 SDK)对我有用

于 2019-04-09T06:45:04.230 回答
1

我添加了以下 VM 选项,它对我有用:

-Dcom.sun.management.jmxremote= 
-Dcom.sun.management.jmxremote.port=1099 
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false
于 2016-11-22T02:19:46.707 回答
1

如果您的 tomcat 包含文件 setenv.sh ([YOUR_CATALINA_HOME]/bin/setenv.sh),它可能会重新定义 Jidea 用于设置 JMX 的 JAVA_OPTS 变量,因此您必须在此处添加它们:

export JAVA_OPTS ="$JAVA_OPTS <whatever was in setenv.sh>"
echo $JAVA_OPTS
于 2021-06-08T15:24:51.303 回答
1

上面的答案都不适合我。最后我发现这是一个配置错误(我使用 android SDK 而不是 Java SDK 进行编译)。

转到 [右键单击项目] --> 打开模块设置 --> 模块 --> [依赖项] 并确保您已配置并选择 Java SDK(不是 android java sdk)

于 2015-08-23T20:48:56.943 回答
1

Tomcat 6.0.53我在继续部署项目时遇到了这个问题Mac OS Sierra。从官方站点将 Tomcat 版本更改为“tar.gz”后,此问题得到解决。似乎'zip'是用于Windows的。Intellij IDEASpring

于 2017-05-30T17:17:16.443 回答
0

最重要的是,在主机中将我的主机名指向 127.0.0.1(只需hostname在 cmd 中运行即可获取它)以及执行 David GC 提到的操作,对我来说,当我进入 tomcat 配置并更改调试启动脚本时,错误已清除并且调试工作正常从startup.bat(这只是我胡闹)回到catalina.bat start默认值。

于 2015-05-07T18:31:45.980 回答
0

如果您使用的是 java 7,请确保您拥有 Tomcat 7

酿造安装tomcat@7

并将运行配置更新为 Tomcat 7

Tomcat 9 正在使用 java 8

于 2021-01-05T11:04:49.833 回答
0

我有同样的问题,我的错误是,我试图用不兼容的 JDK 版本启动 tomcat 服务器并安装了 Apache tomcat 服务器。在我的例子中,我安装了 JDK 7 和 Apache tomcat 9。对于 Apache 9,JDK 应该 >= 8。

为了兼容性检查这个https://tomcat.apache.org/whichversion.html

于 2017-10-11T09:02:52.900 回答
0

在 Windows 环境中,只需检查 PATH 环境变量,如果 Oracle JRE 运行时刷新了路径并将自己置于路径的最开头。在这种情况下,即使 JAVA_HOME 和 JRE_HOME 指向正确的 JDK,JRE 也将具有优先权。在这种情况下,IntelliJ 不会使用提到的错误消息启动 Tomcat 实例。

于 2020-11-30T01:14:13.817 回答
0

对我来说,这是一个非常不同的解决方案,因为它在 virtualbox 上运行,所以我必须编辑 hosts 文件并将 virtualbox 添加为 localhost

127.0.0.1 VirtualBox-blahblah
于 2020-01-07T22:07:39.610 回答
0

我要为 jboss 用户留下答案。

如果遇到此错误的任何人正在使用 jboss,请确保 JBOSS_HOME 位置正确。

于 2021-04-02T01:53:47.400 回答
0

如果我们为应用程序JAVA jdk版本安装了兼容的tomcat版本,我们可以轻松解决这个问题。

就我而言,当我将 Tomcat 10.1.0.M4 与 JAVA JDK 1.8 一起使用时,我遇到了这个问题。当我将我的 tomcat 版本降级到 9.0.41 时,问题为我解决了。

在此处输入图像描述

你可以在这里找到与 JAVA JDK 兼容的 tomcat 版本。 http://tomcat.apache.org/whichversion.html

在此处输入图像描述

于 2021-08-27T05:13:26.390 回答