TomEE 启动但 Netbeans 给出“启动失败”错误

Posted

技术标签:

【中文标题】TomEE 启动但 Netbeans 给出“启动失败”错误【英文标题】:TomEE starts but Netbeans gives "Failed to start" error 【发布时间】:2015-08-19 06:15:03 【问题描述】:

我正在使用 NetBeans 8.0.2(也在最新的夜间版本中尝试过)并尝试在端口 8084 上启动 TomEE Plume 服务器(也在不同的端口上尝试过)。服务器启动并且工作正常,但 NetBeans 认为它​​没有启动,并且在等待大约 2 分钟后(“等待 Tomcat”)会抛出一个错误窗口“Tomcat 无法启动”或类似的东西。

有些问题与我的问题相似,不同之处在于我完全没有错误,只有“Tomcat 无法启动”窗口,所以我什至不能把日志放在这里,因为它没有任何用处。此外,可用的解决方案对我不起作用。

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

我研究过同样的问题,两个最常见的问题是“'127.0.0.1*' 不被识别为内部或外部命令”,我也遇到了同样的问题。建议的解决方案是在工具选项中选择“无代理”,但它仍然没有帮助我。

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

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

【问题讨论】:

提供的答案正确解决。此问题与此处描述的类似:***.com/a/38277506/744133 - 该答案将准确描述哪些版本的 netbeans 会受到影响。 【参考方案1】:

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

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

【讨论】:

以前从未见过此解决方案,但确实做到了,谢谢@Steve!另外,不知道为什么这两个属性会以这种方式影响 NetBeans。 这是我在部署时消除长期运行情况的唯一解决方案。不幸的是,我没有得到这种情况的确切解释。但是你的解决方法很好。谢谢 :-) 大声笑,它有效!希望作者也能详细说明一下解决方案。 似乎只删除 server 属性就足够了。对我来说解决这个问题就足够了。 xpoweredBy 似乎与问题无关.. 终于!删除 server 属性对我有用!我还删除了另一个答案中提到的引号",但没有删除服务器它不起作用【参考方案2】:

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。

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

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

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

我的解决方法是取消选中 Apache TomEE+ 1.7.2 服务器属性的 平台 选项卡上的 Use IDE Proxy Settings 复选框。见下文。

【讨论】:

感谢您的回答!我相信您的方法可以像编辑 server.xml 一样有效,我稍后会尝试。此外,给你虚构的支持,因为不能给你真正的支持。 工作解决方案,但我建议改为修复 catalina.bat 文件。新版本在 SET JAVA_OPTS 周围的两个地方包含引号,这与 Netbeans 的 nonProxyHost 值有干扰。以前的版本没有引号。请参阅下面的详细答案。 这也适用于我的情况。 Netbeans 8.0.2,Tomcat 7【参考方案3】:

今天我想从TomEE 1.7.0升级到1.7.2并基于Mugi4ok 的问题和 HowardSteve 的答案(因为你们都是对的,但问题的根源仍然在系统中) 我对上面提到的情况做了一些更深入的分析,终于找到了它的根源。

新版 TomEE (1.7.2) 中有两个不同的问题

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

让我们看看第一个案例。因为它是在运行/调试过程的最开始生成的,所以我首先检查了 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 服务器的平台设置中打开了“使用 IDE 代理设置”复选框,我们将在 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 也能认识到这一点并在下一个版本中尽快修复它们,或者为它创建一个补丁。

【讨论】:

出色的分析和答案!谢谢。 有同样的问题,但上述解决方案均无效:/ 如果有任何差异,我在 OS X 中【参考方案4】:

如果在 Netbeans 8.X 中添加新服务器时只有一条消息“启动失败”-> 去

服务器>(选择您添加的服务器)>平台>“使用的ide代理 设置”

取消“使用的 ide 代理设置”

【讨论】:

对我来说,这个解决方案对tomcat 7,8有效【参考方案5】:

我会在首选项下检查 netbeans 中的代理设置为“无代理”而不是“使用系统代理设置”。

为我工作。

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

【讨论】:

好人。工作。这应该是公认的答案。【参考方案6】:

在带有 Netbeans 8.1 的 tomcat 8.5.11 中,我不得不改变这个:

<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 文件中。

【讨论】:

奇怪的是,这与标记的答案完全相反,但它解决了我的问题。无论如何,谢谢。

以上是关于TomEE 启动但 Netbeans 给出“启动失败”错误的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat和TomEE、TomEE和TomEE Plus有啥区别

centOS7 vsftp ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS) 启动失

the selected directory is not a TomEE home

如何使用测试资源运行嵌入式 TomEE 进行集成测试

JMS 主题订阅 Tomee 1.7.1

TomEE PolicyConfigurationFactory & TransactionManagerImpl 错误