• java.lang.NoClassDefFoundError: org/apache/jute/CsvOutputArchive


    1. 问题

      看到上面的错误 你怎么想?

      包冲突?我这里不是。项目用到了zookeeper,这个类是zookeeper的核心包里的类。

      控制台一直打印这个错误 但是项目不影响使用,奇怪!

    2. 解决办法

    最后排查是项目在jenkins部署重启之后,进程没有啥干净。

    kill -9 id 杀掉最近一次以前的 不在保错

    3. 分析

    从网上博客收到启发

    http://blog.csdn.net/li396864285/article/details/54574955

    1. Tomcat启动,初始化webcontext;
    2. 初始化spring, spring初始某些些bean,这些bean包括了zookeeper的连接相关的bean;
    3. 这时zkClient(独立线程)已经连接上服务器了,但是classloader没有加载到org/apache/zookeeper/proto/SetWatches类;
    4. spring初始化失败,导致Tomcat webcontext初始化也失败,应用在挂起状态,但zkClient线程还是正常的;
    5. zookeeper服务器重启,zkClient开始重连,连接上zookeeper服务器;
    6. zkClient触发watch的一些代码,ClassLoader尝试加载org/apache/zookeeper/proto/SetWatches类,但是发现找不到类,于是抛出异常;
    7. zkClient捕获到异常,认为重连失败,close掉connection,休眠几秒之后,再次重连;

    于是出现了zkClient反复重试连接zookeeper服务器,而且都是秒连秒断的情况

  • 相关阅读:
    【Java123】enum枚举及其应用
    sql查询优化_慢查询
    9.4 如何实现属性可修改的函数装饰器?
    9.2 如何为被装饰的函数保存元数据?
    python的如何通过实例方法名字的字符串调用方法?
    9.1 如何使用函数装饰器 用装饰器解决重复计算问题
    asyncio 笔记
    python笔记截图
    list绑定
    表单数据交互
  • 原文地址:https://www.cnblogs.com/cxhfuujust/p/8404939.html
Copyright © 2020-2023  润新知