Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse中的Tomcat:它运行,但无论如何在启动时都会超时_Java_Eclipse_Web Applications_Tomcat7 - Fatal编程技术网

Java Eclipse中的Tomcat:它运行,但无论如何在启动时都会超时

Java Eclipse中的Tomcat:它运行,但无论如何在启动时都会超时,java,eclipse,web-applications,tomcat7,Java,Eclipse,Web Applications,Tomcat7,我正在使用Tomcat7在Eclipse(Helios)中运行java web应用程序。服务器成功启动(显示了持续时间),但是Eclipse的进度条仍然旋转,表示Tomcat正在启动。最终达到超时并抛出错误 我相信Tomcat很好,因为我接受了它使用的命令,并在shell中手动运行它。Tomcat运行良好,我能够按预期的URL点击web应用程序。我也可以在它启动后和超时发生之前点击它 我重新安装了Eclipse,用clean运行了它,删除/重新创建了服务器。什么都没起作用。有人有任何线索吗?我已

我正在使用Tomcat7在Eclipse(Helios)中运行java web应用程序。服务器成功启动(显示了持续时间),但是Eclipse的进度条仍然旋转,表示Tomcat正在启动。最终达到超时并抛出错误

我相信Tomcat很好,因为我接受了它使用的命令,并在shell中手动运行它。Tomcat运行良好,我能够按预期的URL点击web应用程序。我也可以在它启动后和超时发生之前点击它

我重新安装了Eclipse,用clean运行了它,删除/重新创建了服务器。什么都没起作用。有人有任何线索吗?

我已经找到了答案(讽刺的是,就在这里发布之后,似乎是如何找到自己问题的答案。)

答案是另一个进程正在使用该端口。我应该知道,但是升级了几个不同的软件包就可以做到这一点。但在症状方面:

  • Tomcat成功启动。能够在超时前点击应用程序
  • Eclipse看起来无法确定服务器是已启动还是已停止

HTTP当前在默认值8080下运行。不幸的是,我的数据存储在8080监听(我的猜测是,除了分配给jmx之外,我不太确定它对端口的作用)。我猜Eclipse无法在8080检测到Tomcat。

我遇到了这个问题,我的Tomcat版本似乎有问题(Tomcat 7.0.23) 将您的tomcat版本切换到另一个版本(即tomcat 7.0.14),它适合我


祝你好运

如果两个servlet映射到同一个请求URL,Tomcat将正常启动,但eclipse将无法生成正确的web.xml文件,因此无法发布webApp。 检查servlet映射
@WebServlet(“\theurlthauldinvokethisservlet”)
确保两个servlet不具有相同的“theurlthauldinvokethisservlet”


(记录在案!)

我遇到了这个问题,Eclipse似乎在启动后调用应用程序url以确保它正在运行

代理客户端(pshione)更改了系统代理,因此eclipse无法调用起始页,并认为应用程序尚未启动

我删除了代理,现在可以正常工作了

编辑:


当您使用SSL启动tomcat时,也可能发生这种情况,但SSL证书无效。当您调用无效的SSL认证站点时,某些浏览器会确认您是否要访问该站点,但eclipse无法连接到无效的SSL站点!我建议用普通的http而不是https来测试你的站点

一些Java更新会导致Eclipse的网络操作出现问题。具体来说,Eclipse尝试使用IPv6而不是IPv4,有时会失败。当Eclipse启动Tomcat时,它所做的最后一步是测试对Tomcat的调试调用。这可能是挂起的部分。幸运的是,修复非常容易。我们只是告诉Eclipse改用IPv4

要执行此操作,请编辑eclipse.ini文件(位于eclipse目录中),并将以下内容添加到文件末尾的行中:

-Djava.net.preferIPv4Stack=true

重新启动Eclipse,您就可以开始了。

我也遇到了同样的问题,这是由于我定义了连接器(我只有一个AJP连接器)


将HTTP连接器添加到Tomcat的server.xml解决了此问题。

此问题与配置了HTTPS但没有HTTP连接器的Tomcat有关

我在server.xml中有这个SSL连接器,我在Eclipse中的tomcat总是显示开始:


我假设Eclipse使用到服务器的HTTP连接来验证Tomcat实例是否可用

我已经解决了这个问题,包括一个在server.xml中重定向到HTTPS的传统HTTP连接器

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

<Connector SSLEnabled="true" asyncTimeout="10000000" clientAuth="false" 
    connectionTimeout="10000000" keepAliveTimeout="10000000" 
    keystoreFile="/opt/config/selfsigned.p12" keystorePass="changeit" 
    keystoreType="PKCS12" maxThreads="200" port="443"
    protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https"
    secure="true" sslProtocol="TLS"/>


通过此更改,Eclipse中的tomcat开始正确显示调试状态。

问题在您身上,答案也在您身上。;)这也是我的问题。。。谢谢你的回答!我有一个运行于8080的Vagrant实例,但遗憾的是Eclipse在启动过程中没有显示问题,它很高兴地报告“服务器启动时间为xxxxx ms”。+1表示SSL证书注释。我的修复方法是重新添加8080连接器(但仍然保留我的自签名证书8443连接器)。
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1"
    redirectPort="443"/>

<Connector SSLEnabled="true" asyncTimeout="10000000" clientAuth="false" 
    connectionTimeout="10000000" keepAliveTimeout="10000000" 
    keystoreFile="/opt/config/selfsigned.p12" keystorePass="changeit" 
    keystoreType="PKCS12" maxThreads="200" port="443"
    protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https"
    secure="true" sslProtocol="TLS"/>