TomEE启动但Netbeans提供“启动失败”错误

时间:2015-06-04 14:50:22

标签: java tomcat netbeans tomee

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

有类似于我的问题,区别在于我完全没有错误,只有“Tomcat无法启动”窗口,因此我甚至无法将日志放在此处,因为它没有任何用处。此外,可用的解决方案对我不起作用。

我相信NetBeans和TomEE之间存在一些通信问题,我也几乎肯定问题出现在NetBeans中,因为TomEE运行良好并且应该启动,localhost:8084虽然NetBeans认为它无法启动,但它仍然给我Tomcat页面。由于某些原因,TomEE在启动后没有向NetBeans发送确认信息,但我真的不知道如何检查它。

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

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

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

6 个答案:

答案 0 :(得分:25)

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

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

答案 1 :(得分:14)

NetBeans 8.0.2 TomEE + 1.7.1 配合良好,但之后我从TomEE + 1.7.1升级到 1.7.2 ,在服务&gt;中添加TomEE + 1.7.2 NetBeans 8.0.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的服务器属性的平台标签上的使用IDE代理设置复选框。见下文。

enter image description here

答案 2 :(得分:7)

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

为我工作。

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

答案 3 :(得分:4)

今天,当我想从 TomEE 1.7.0 升级到 1.7.2 并基于<时,我遇到了同样的情况strong> Mugi4ok 的问题和 Howard 以及 Steve 的答案(因为你们所有人都是对的,但是问题的根源仍然存在于系统中)我对上述情况进行了更深入的分析,最后我找到了它的根源。

新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设置,我们已经打开了&#34;使用IDE代理设置&#34;在TomEE服务器的平台设置中的复选框我们将在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代理设置,可以使用这个小修改。

在部署中产生超时的第二种情况对我来说非常奇怪,只有史蒂夫的回答帮助我所以非常感谢。

总结如果您发现任何开源系统的新版本中存在一些错误,请首先检查修改并尝试逐步找到后面的内容。在这种情况下,这解决了一切。

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

答案 4 :(得分:4)

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

答案 5 :(得分:2)

如果在Netbeans 8.X中添加新服务器时只有“无法启动”消息 - > 转到

  

服务器&GT; (选择您添加的服务器)&gt; plataform&gt; “使用ide代理   设置“

Unckeck“使用了ide代理设置”