TomEE 启动但 Netbeans 给出 "Failed to start" 错误

TomEE starts but Netbeans gives "Failed to start" error

我正在使用 NetBeans 8.0.2(也在最新的每晚构建中尝试过)并尝试在端口 8084 上启动 TomEE Plume 服务器(也在不同的端口上尝试过)。服务器启动并工作正常,但 NetBeans 认为它​​没有启动,并且在等待大约 2 分钟 ("Waiting for Tomcat") 后抛出错误 window "Tomcat failed to start" 或类似的错误。

有和我类似的问题,不同的是我完全没有错误,只有 "Tomcat failed to start" window,所以我什至不能把日志放在这里,因为它没有说任何有用的东西。此外,可用的解决方案对我不起作用。

我认为 NetBeans 和 TomEE 之间存在一些通信问题,而且我几乎可以肯定问题出在 NetBeans 中,因为 TomEE 运行良好并且可以正常启动,localhost:8084 给我 Tomcat尽管 NetBeans 认为它​​无法启动。由于某种原因,TomEE 在启​​动后没有向 NetBeans 发送确认的可能性很小,但我真的不知道如何检查。

我调查了同样的问题,两个最常见的问题是“'127.0.0.1*' 未被识别为内部或外部命令”,我也遇到了同样的问题。建议的解决方案是在工具选项中选择 "No proxy",但它对我没有帮助。

此外,为了确定,我编辑了 catalina.bat 文件并检查了我的用户权限 roles="admin-gui,manager-gui,admin,manager-script"

我希望有人遇到过同样的问题。另外,我想知道这个问题是否可以解决。谢谢

在 server.xml 中,从连接器中删除 xpoweredBy 和服务器属性:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" xpoweredBy="false"
           server="Apache TomEE" />

NetBeans 8.0.2TomEE+ 1.7.1 上运行良好,但后来我从 TomEE+ 1.7.1 升级到 1.7.2,在NetBeans 8.0.2中的Services > Servers中添加了TomEE+ 1.7.2,这时候我在 运行 最新打补丁的 NetBeans 8.0.2 和 TomEE+ 1.7.2 时遇到了 'Failed to start' 错误。

在 server.xml 中,我有以下内容:

<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" connectionTimeout="20000" acceptorThreadCount="2"
           redirectPort="8443" socket.directBuffer="false"/>

我试图修改 连接器 ,但这并没有解决问题。

我的解决方法是在服务器属性的平台选项卡上取消选中使用IDE代理设置复选框Apache TomEE+ 1.7.2。见下文。

今天遇到同样的情况,想从TomEE1.7.0升级到1.7 .2 并基于 Mugi4ok 的问题以及 HowardSteve的答案(因为你们都对,但问题的根源还是在系统上)我对上述情况做了更深入的分析,终于找到了根源。

新 TomEE 版本 (1.7.2)

中存在两个不同的问题
  • 当您在 NetBeans 中启动调试或 运行 会话时,您会立即收到消息:系统无法将给定名称 (127.0.0.1*) 识别为命令 ...
  • 另一个在部署过程结束时引发 运行ning 情况

我们来看第一种情况。因为它是在 run/debug 过程的最开始生成的,所以我首先检查了 catalina.bat 脚本,因为它首先被调用。我比较了来自 TomEE 1.7.0 和 1.7.2 的两个版本。而且这个问题几乎是微不足道的。

TomEE 在脚本中更改了两行:

在 1.7.0 中是这样的:

set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%

但在 1.7.2 中他们用引号括起来:

set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%"

如果 JAVA_OPTS 环境变量也包含引号,那将是一个很大的变化。如果使用 NetBeans 并且我们使用 nonProxyHosts 设置并且我们在 TomEE 服务器的平台设置中打开了 "Use IDE Proxy settings" 复选框,我们将在 JAVA_OPTS 中有类似的东西(我刚刚提取了相关值我们的案例当然还有许多其他参数):

 -Dhttp.nonProxyHosts="localhost*|127.0.0.1*|10.*"

如果您仔细查看第一个引号并查看第一个竖线字符,您已经知道会发生什么:-)

只需将此命令写入shell并尝试执行:

set "JAVA_OPTS=-Dhttp.nonProxyHosts="localhost*|127.0.0.1*|10*"

第一个管道字符将按原样运行,因此命令 shell 将尝试将以下字符串解释为命令,但 127.0.0.1* 不是命令。

所以我建议的解决方案是删除新版本中的额外引号,就像在以前的版本中一样。它们在第 179 和 184 行,简单的问题就会消失,您根本不需要取消代理设置,您可以根据需要使用它们。在这种情况下,您也不需要关闭代理设置开关。如果你想依赖 NetBeans 代理设置,你可以做这个小修改。

部署超时的第二种情况 这对我来说非常奇怪,只有 Steve 的回答帮助了我 所以谢谢.

总结如果你在任何开源系统的新版本中看到一些错误,首先检查修改并尝试逐步找到哪个。在这种情况下,这解决了所有问题。

我希望 TomEE 也能认识到这一点并在下一个版本中尽快修复它们,或者他们为它创建一个补丁。

如果在 Netbeans 中添加新服务器时只有一条消息 "Failed to Start" 8.X -> 转到

Servers> (select your server added) > plataform > "used ide proxy settings"

解开"used ide proxy settings"

我会在首选项下检查 netbeans 中的代理设置为 "No Proxy" 而不是 "Use System Proxy Settings"。

对我有用。

来源:https://www.youtube.com/watch?v=uI1j-8F8eN4

在 tomcat 8.5.11 和 Netbeans 8.1 中,我必须更改此设置:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000" 
           redirectPort="8443" />

为此:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000" xpoweredBy="false" server="Apache-Coyote/1.1"
           redirectPort="8443" />

在 server.xml 文件中。