Tomcat 启动始终为preparing launch delegate状态问题解决(Dubbo相关)

xiaoxiao2021-02-28  46

问题:

Tomcat 启动时始终保持在“preparing launch delegate”状态,启动进程不能继续,最后导致超时退出。在网上搜索了很多的相关解答,包括修改Eclipse配置、Internet设置,删除Eclipse tomcat 服务器配置重建,使用Tomcat 8等等,均不能解决问题。

后来将应用放在Tomcat webapp目录下启动,发现启动进程也卡在那里不动。后来怀疑是DUBBO配置文件的问题,将Dubbo配置文件删除,应用能正常启动,加上去就不好使了,通过查询资料,发现也有网友碰到过类似问题,原因为Zookeeper未启动,Dubbo服务注册不上所致。于是排查Zookeeper的2181端口是否启动,结果发现该端口确实未启动。

下面为dubbo的部分配置文件:

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <!-- 提供方应用信息,用于计算依赖关系 --> <dubbo:application name="xy" /> <!-- 使用zookeeper注册中心暴露服务地址 --> <dubbo:registry protocol="zookeeper" address="192.168.1.42:2181" /> <!-- 用dubbo协议在20880端口暴露服务 --> <dubbo:protocol name="dubbo" port="20883" /> <!-- 服务省略--> </beans>

解决:

启动Zookeeper,保证配置文件中配置的address 地址能通(通过telnet  [IP] [PORT]命令探测有无响应)。最后,应用顺利启动。

后记:

这个Dubbo服务若注册不上,就一直卡在那里,既不报错误信息,也不超时,确实太坑了。程序不怕报错,而是拍不报错,不报错的程序问题是最难查的。

不知道Dubbo有无相关的配置能避免这样的问题发生。

转载请注明原文地址: https://www.6miu.com/read-80237.html

最新回复(0)