Dubbo消费端错误: ClassNotFoundException: org.apache.zookeeper.proto.WatcherEvent
出现错误的原因是消费端war没有启动成功, 但是zkClient和Dubbo的对应Thread启动了, web container无法加载对应的类,
INFO: Initializing ProtocolHandler ["http-bio-8081"]
Jun , :: PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8010"]
Jun , :: PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in ms
Jun , :: PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jun , :: PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.
Jun , :: PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive /home/tomcat/tomcat7_jdk7_2/webapps/daemon.war
Jun , :: PM org.apache.catalina.startup.TldConfig execute
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Jun , :: PM org.apache.catalina.core.StandardContext startInternal
SEVERE: One or more listeners failed to start. Full details will be found in the appropriate container log file
Jun , :: PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/daemon] startup failed due to previous errors
Jun , :: PM org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
SEVERE: The web application [/daemon] appears to have started a thread named [DubboRegistryFailedRetryTimer-thread-] but has failed to stop it. This is very likely to create a memory leak.
Jun , :: PM org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
然后在接下来的日志中
INFO: Starting ProtocolHandler ["http-bio-8081"]
Jun , :: PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8010"]
Jun , :: PM org.apache.catalina.startup.Catalina start
INFO: Server startup in ms
Jun , :: PM org.apache.catalina.loader.WebappClassLoaderBase loadClass
INFO: Illegal access: this web application instance has been stopped already. Could not load org.apache.zookeeper.proto.WatcherEvent. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
java.lang.IllegalStateException
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:)
而Dubbo消费端未启动的原因, 是Spring初始化失败
::29.725 INFO org.springframework.web.context.ContextLoader# Root WebApplicationContext: initialization started
::29.867 INFO ework.web.context.support.XmlWebApplicationContext# Refreshing Root WebApplicationContext: startup date [Wed Jun :: CST ]; root of context hierarchy
::29.917 INFO ramework.beans.factory.xml.XmlBeanDefinitionReader# Loading XML bean definitions from class path resource [spring/spring-daemon.xml]
::30.232 INFO ramework.beans.factory.xml.XmlBeanDefinitionReader# Loading XML bean definitions from class path resource [spring/spring-daemon-dubbo.xml]
::30.316 INFO com.alibaba.dubbo.common.logger.LoggerFactory# using logger: com.alibaba.dubbo.common.logger.log4j.Log4jLoggerAdapter
::30.561 INFO beans.factory.config.PropertyPlaceholderConfigurer# Loading properties file from class path resource [application.properties]
::30.634 INFO work.scheduling.concurrent.ThreadPoolTaskScheduler# Initializing ExecutorService 'myScheduler'
::30.634 INFO essorRegistrationDelegate$BeanPostProcessorChecker# Bean 'myScheduler' of type [class org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
::30.661 INFO gframework.cache.ehcache.EhCacheManagerFactoryBean# Initializing EhCache CacheManager
::30.664 DEBUG net.sf.ehcache.config.ConfigurationFactory# Configuring ehcache from InputStream
::30.677 DEBUG net.sf.ehcache.config.DiskStoreConfiguration# Disk Store Path: /home/tomcat/tomcat7_jdk7_2/temp
::30.702 DEBUG net.sf.ehcache.util.PropertyUtil# propertiesString is null.
::30.713 DEBUG net.sf.ehcache.config.ConfigurationHelper# No CacheManagerEventListenerFactory class specified. Skipping...
::30.729 DEBUG net.sf.ehcache.Cache# No BootstrapCacheLoaderFactory class specified. Skipping...
::30.729 DEBUG net.sf.ehcache.Cache# CacheWriter factory not configured. Skipping...
::30.731 DEBUG net.sf.ehcache.config.ConfigurationHelper# No CacheExceptionHandlerFactory class specified. Skipping...
::31.559 INFO alibaba.dubbo.registry.zookeeper.ZookeeperRegistry# [DUBBO] Load registry store file /home/tomcat/.dubbo/dubb
::31.572 DEBUG org.I0Itec.zkclient.ZkConnection# Creating new ZookKeeper instance to connect to 192.168.35.2:.
::31.578 INFO org.I0Itec.zkclient.ZkEventThread# Starting ZkClient event thread.
::31.584 INFO org.apache.zookeeper.ZooKeeper# Client environment:zookeeper.version=3.4.-, built on // : GMT
::31.584 INFO org.apache.zookeeper.ZooKeeper# Client environment:host.name=iZ25iig1og4Z
::31.584 INFO org.apache.zookeeper.ZooKeeper# Client environment:java.version=1.7.0_80
::31.584 INFO org.apache.zookeeper.ZooKeeper# Client environment:java.vendor=Oracle Corporation
::31.585 INFO org.apache.zookeeper.ZooKeeper# Client environment:java.home=/opt/java/jdk1..0_80/jre
::31.585 INFO org.apache.zookeeper.ZooKeeper# Client environment:java.class.path=/opt/tomcat/apache-tomcat-7.0./bin/bootstrap.jar:/opt/tomcat/apache-tomcat-7.0./bin/tomcat-juli.jar
::31.585 INFO org.apache.zookeeper.ZooKeeper# Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
::31.585 INFO org.apache.zookeeper.ZooKeeper# Client environment:java.io.tmpdir=/home/tomcat/tomcat7_jdk7_2/temp
::31.585 INFO org.apache.zookeeper.ZooKeeper# Client environment:java.compiler=<NA>
::31.586 INFO org.apache.zookeeper.ZooKeeper# Client environment:os.name=Linux
::31.586 INFO org.apache.zookeeper.ZooKeeper# Client environment:os.arch=amd64
::31.586 INFO org.apache.zookeeper.ZooKeeper# Client environment:os.version=2.6.-431.23..el6.x86_64
::31.586 INFO org.apache.zookeeper.ZooKeeper# Client environment:user.name=tomcat
::31.586 INFO org.apache.zookeeper.ZooKeeper# Client environment:user.home=/home/tomcat
::31.586 INFO org.apache.zookeeper.ZooKeeper# Client environment:user.dir=/opt/tomcat/apache-tomcat-7.0./bin
::31.587 INFO org.apache.zookeeper.ZooKeeper# Initiating client connection, connectString=192.168.35.2: sessionTimeout= watcher=org.I0Itec.zkclient.ZkClient@3c4ff559
::31.602 DEBUG org.I0Itec.zkclient.ZkClient# Awaiting connection to Zookeeper server
::31.606 DEBUG org.I0Itec.zkclient.ZkClient# Waiting for keeper state SyncConnected
::31.608 INFO org.apache.zookeeper.ClientCnxn# Opening socket connection to server 192.168.35.2/192.168.35.2:. Will not attempt to authenticate using SASL (unknown error)
::31.614 INFO org.apache.zookeeper.ClientCnxn# Socket connection established to 192.168.35.2/192.168.35.2:, initiating session
::31.625 INFO org.apache.zookeeper.ClientCnxn# Session establishment complete on server 192.168.35.2/192.168.35.2:, sessionid = 0x151de41a1800146, negotiated timeout =
::31.627 DEBUG org.I0Itec.zkclient.ZkClient# Received event: WatchedEvent state:SyncConnected type:None path:null
::31.627 INFO org.I0Itec.zkclient.ZkClient# zookeeper state changed (SyncConnected)
::31.627 DEBUG org.I0Itec.zkclient.ZkClient# Leaving process event
::31.627 DEBUG org.I0Itec.zkclient.ZkClient# State is SyncConnected
::31.681 INFO alibaba.dubbo.registry.zookeeper.ZookeeperRegistry# [DUBBO] Register: consumer://192.168.35.2/com.rockbb.credipay...
::31.726 INFO alibaba.dubbo.registry.zookeeper.ZookeeperRegistry# [DUBBO] Subscribe: consumer://192.168.35.2/com.rockbb.credipay...
::31.751 INFO alibaba.dubbo.registry.zookeeper.ZookeeperRegistry# [DUBBO] Notify urls for subscribe url consumer://192.168.35.2/com.rockbb.credipay...
::31.776 WARN ework.web.context.support.XmlWebApplicationContext# Exception encountered during context initialization - cancelling refresh attempt
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'marketTask': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.rockbb.credipay.commons.api.service.DayInterestService com.rockbb.credipay.daemon.task.MarketTask.dayInterestService; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dayInterestService': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: Failed to check the status of the service com.rockbb.credipay.commons.api.service.DayInterestService. No provider available for the service com.rockbb.credipay.commons.api.service.DayInterestService from the url zookeeper://192.168.35.2:2181/com.alibaba.dubbo.registry.RegistryService?application=celt-daemon-machine&default.version=develop-machine&dubbo=2.5.3&interface=com.rockbb.credipay.commons.api.service.DayInterestService&methods=update,count,batchUpdate,select,list,doVirtualCapitalInterest,insert,selectVirtualCapitalInterest&pid=26624&revision=1.0-SNAPSHOT&side=consumer×tamp=1464788911437 to the consumer 192.168.35.2 use dubbo version 2.5.3
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:) ~[spring-beans-4.1..RELEASE.jar:4.1..RELEASE]
从最后几行的日志中可以看到, 在Dubbo注册后, 初始化SpringContext的过程中出现了错误, 导致初始化失败.
但zkClient线程还是正常启动, zookeeper服务器重启,zkClient开始重连,连接上zookeeper服务器;
zkClient触发watch的一些代码,ClassLoader尝试加载org/apache/zookeeper/proto/SetWatches类,但是发现找不到类,于是抛出异常;
zkClient捕获到异常,认为重连失败,close掉connection,休眠几秒之后,再次重连;
于是出现了zkClient反复重试连接zookeeper服务器的情况
要避免这种问题: 不能在dubbo消费端正在启动的时候, 关闭/重启所有可用的服务端.
Dubbo消费端错误: ClassNotFoundException: org.apache.zookeeper.proto.WatcherEvent的更多相关文章
- 启动dubbo消费端过程提示No provider available for the service的问题定位与解决
文/朱季谦 某次在启动dubbo消费端时,发现无法从zookeeper注册中心获取到所依赖的消费者API,启动日志一直出现这样的异常提示 Failed to check the status of t ...
- Dubbo入门到精通学习笔记(十二):Dubbo消费端直连提供者(开发调试)、Dubbo服务只订阅(开发调试)、Dubbo服务只注册
文章目录 Dubbo消费端直连提供者(开发调试) Dubbo服务只订阅(开发调试) Dubbo服务只注册 Dubbo消费端直连提供者(开发调试) Dubbo 官方文档: 用户指南 >> 示 ...
- java.lang.NoClassDefFoundError: org/apache/zookeeper/proto/SetWatches
Session 0x16b21fa441900b6 for server 192.168.240.126/192.168.240.126:2181, unexpected error, closing ...
- Download and Install Apache Zookeeper on Ubuntu
http://www.techburps.com/misc/download-and-install-apache-zookeepr/36 In previous article of this Bi ...
- Zookeeper异常org.apache.zookeeper.KeeperException$ConnectionLossException
在虚拟机上安装了CenOS Linux系统,然后配置好了 zookeeper的集群环境,在本地写了一个Zookeeper测试程序,如下: package com.xbq.zookeeper; impo ...
- Spring boot dubbo+zookeeper 搭建------基于gradle项目的消费端与服务端分离实战
1. Dubbo简介 Dubbo是Alibaba开源的分布式框架,是RPC模式的一种成熟的框架,优点是可以与Spring无缝集成,应用到我们的后台程序中.具体介绍可以查看Dubbo官网. 2. Why ...
- Dubbo学习笔记2:Dubbo服务提供端与消费端应用的搭建
Demo结构介绍 Demo使用Maven聚合功能,里面有三个模块,目录如下: 其中Consumer模块为服务消费者,里面TestConsumer和consumer.xml组成了基于Spring配置方式 ...
- 源码分析Dubbo服务消费端启动流程
通过前面文章详解,我们知道Dubbo服务消费者标签dubbo:reference最终会在Spring容器中创建一个对应的ReferenceBean实例,而ReferenceBean实现了Spring生 ...
- Dubbo学习笔记4:服务消费端泛化调用与异步调用
本文借用dubbo.learn的Dubbo API方式来解释原理. 服务消费端泛化调用 前面我们讲解到,基于Spring和基于Dubbo API方式搭建简单的分布式系统时,服务消费端引入了一个SDK二 ...
随机推荐
- DOM Scripting -- Web Design with JavaScript and the Document Object Model 第2版 读书笔记
1. childNodes nodeValue <p id="p1">hello p!</p> alert(document.getElementById ...
- Verilog学习笔记基本语法篇(十二)········ 编译预处理
h Verilog HDL语言和C语言一样也提供编译预处理的功能.在Verilog中为了和一般的语句相区别,这些预处理语句以符号"`"开头,注意,这个字符位于主键盘的左上角,其对应 ...
- CSS Hack解决浏览器IE部分属性兼容性问题
1.Css Hack 不同厂商的流览器或某浏览器的不同版本(如IE6-IE11,Firefox/Safari/Opera/Chrome等),对CSS的支持.解析不一样,导致在不同浏览器的环境中呈现出不 ...
- 深入浅出node(1) Node简介
这一系列主要是自己在学习深入浅出node.js这本书的学习笔试,部分加入了自己的一些理解 分享给一起学习node的小伙伴 自己还是个初学者 有很多地方理解的不到位 一起交流 一 什么是node 1.1 ...
- 关于ArcGIS API for JavaScript中basemap的总结介绍(一)
实际上basemap这个概念并不只在arcgis中才有,在Python中有一个matplotlib basemap toolkit(https://pypi.python.org/pypi/basem ...
- Linux0.11内核--进程调度分析之1.初始化
[版权所有,转载请注明出处.出处:http://www.cnblogs.com/joey-hua/p/5596746.html ] 首先看main.c里的初始化函数main函数里面有个函数是对进程调度 ...
- 关于final关键字和抽象类,接口
final主要用于修饰类,方法以及属性 当用于修饰类时,则这个类不能被子类继承,换而言之该类没有子类 当用于修饰方法时,该方法也是不能被复写的 当用于修饰属性时,同理属性值不能被更改 抽象类,当存在抽 ...
- 使用 Async 和 Await 的异步编程(C# 和 Visual Basic)[msdn.microsoft.com]
看到Microsoft官方一篇关于异步编程的文章,感觉挺好,不敢独享,分享给大家. 原文地址:https://msdn.microsoft.com/zh-cn/library/hh191443.asp ...
- ORACLE opatch命令学习实践
opatch 是ORACLE开发的用来安装,卸载,检测patch冲突.管理ORACLE所有已经安装的补丁的工具,当然这是一个命令工具.opatch命令工具一般位于$ORACLE_HOME/OPat ...
- PHP服务缓存优化之ZendOpcache、xcache、eAccelerator
PHP服务缓存优化原理 Nginx 根据扩展名或者过滤规则将PHP程序请求传递给解析PHP的FCGI,也就是php-fpm进程 缓存操作码(opcode) Opcode,PHP编译后的中间文件,缓存给 ...