问题:
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有无相关的配置能避免这样的问题发生。
本文记录了一次使用Dubbo框架的应用启动失败经历。在启动过程中,Tomcat始终停留在“preparing launch delegate”状态,最终排查发现是由于Zookeeper未启动导致Dubbo服务无法注册。文中分享了解决步骤及经验教训。
&spm=1001.2101.3001.5002&articleId=74993578&d=1&t=3&u=5e8456dc1f62487781fdc7dc593ca19e)
1万+

被折叠的 条评论
为什么被折叠?



