Intellij IDEA 导入或运行流式处理框架storm以及java.lang.NoClassDefFoundError报错的解决方案
网上有很多使用eclipse编辑storm的,但是我觉得eclipse界面不太友好,于是毅然使用intellij IDEA来编辑
但是直接无脑导入会有各种各样奇葩的报错,于是我在解决了问题之后与大家分享我的经验:
这篇博客分为三部分:
1.导入eclipse的storm项目
2.创建一个storm项目
3.后言
一:导入eclipse的storm项目:
1.就事论事
从学长那里拿到了一个之前eclipse上跑的很6的项目,于是开始导入:
无脑的跑一下发现出现问题:
这里是java.lang.NoClassDefFoundError: backtype/storm/generated/AlreadyAliveException,我的是AlreadyAliveException类有问题,不过有的小伙伴可能是IRichBolt这个类,不过都是可以解决的啦
既然我是AlreadyAliveException类有问题,于是我定位到AlreadyAliveException.java下,一打开文件我自己都吓傻了:
但是仔细观察,发现频频出现thrift单词的问题,于是上网查阅资料后,在pom.xml中配置了一下:
<dependency> <groupId>org.apache.thrift</groupId> <artifactId>libthrift</artifactId> <version>0.9.3</version> </dependency>
然后看到IDEA右下角出现弹窗:
点击第一项导入变化后,再看AlreadyAliveException文件,报错只有一项了:
其实这个报错我束手无策,因为查看官方源代码后得知,官方就是这样的啊,我能怎么办呢?
2.换一个角度看问题:
我之前忽略了报错的原因:
java.lang.NoClassDefFoundError,这个报错是因为Java虚拟机在编译时能找到合适的类,而在运行时不能找到合适的类导致的错误.想想java的基础知识,编译的时候要编译.java的文件为.class文件,而运行的时候是要执行.class文件的,所以我猜测问题就出在编译的问题上.java虚拟机是本身不应该出错的,那么可能是某些代码出现了疏忽.
于是我仔细检查配置文件:pom.xml
终于发现了问题:
看到了这里面的这条代码了么?
<scope>provided</scope>
provided 意味着打包的时候可以不会包进去,简而言之,就是项目在运行的时候会被认为跑项目的时候会有第三方提供这个包,发布的时候就不需要辛苦打包了,于是呢,在真正运行的时候发现怎么没人提供这个呀,于是虚拟机抛出错误.
发现问题后,把pom.xml中所有的
<scope>provided</scope>
都删除,就可以运行了:
打印了好多日志,表明运行成功了!
拥抱曙光啊!!
二:创建Storm项目
想创建Storm项目其实与eclipse大致相同,为了不暴露我菜鸟的气息,我从github上截了一张图:
上面有详细的说明,大家可以看看哟~(滑稽脸)
github上的具体地址是:https://github.com/apache/storm/tree/master/examples/storm-starter#intellij-idea
后言:
网上也有很多说AlreadyAliveException是因为classpath没有配置正确,虽然可能性比较低,如果是初学者,也可以先检查一下自己的classpath,如果是老油条就希望您们能够多写博客,使得我们这些后生晚辈不会在这种匪夷所思的问题上花费大量时间(触景生情,捂脸痛哭流涕中........)
Intellij IDEA 导入或运行流式处理框架storm以及java.lang.NoClassDefFoundError报错的解决方案相关推荐
- 流式处理框架storm浅析(下篇)
本文来自网易云社区 作者:汪建伟 举个栗子 1 实现的目标 设计一个系统,来实现对一个文本里面的单词出现的频率进行统计. 2 设计Topology结构: 这是一个简单的例子,topology也非常简单 ...
- 分布式流式计算框架Storm
Storm用于实时处理,就好比 Hadoop 用于批处理. --> 离线计算:批量获取数据,批量传输数据,周期性比量计算数据,数据展示(Sqoop-->HDFS--> ...
- Storm精华问答 | 最火的流式处理框架——Storm
戳蓝字"CSDN云计算"关注我们哦! Storm是Twitter开源的分布式实时大数据处理框架,被业界称为实时版Hadoop. 今天就为大家带来Storm诞生到发展再到实践,赶快 ...
- 流式计算框架Storm编程案例:实时给手机品牌转大写并加上时间戳后缀代码示例
导入jar包,保险起见,直接从storm安装目录拷贝,maven方式可能会因版本问题出现纰漏. 结果演示:
- 流式计算框架Storm网站访问来源实时统计及存储到redis代码示例
- 流式计算框架Storm 编程案例部署Linux结果演示及pom依赖
使用maven方式创建storm项目: <?xml version="1.0" encoding="UTF-8"?> <project xml ...
- 流式计算框架Storm后台启动命令(避免新开窗口)
- 运行错误:Exception in thread “main“ java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactor
这是我们在做OSS文件上传时容易发生的错误,提示说没有日志相关的类,是因为没有导入相关的jar包,所以我们只需要导入一个commons-logging就好了 <!-- https://mvnre ...
- Flink分布式流式处理框架
Flink Flink概述 数据流与流计算 Flink简介 应用场景 Flink架构 安装配置 示例演示 单词统计示例 创建Flink工程 示例代码 基本概念 DataStream和DataSet 数 ...
最新文章
- 解决jenkins控制台中文乱码问题
- 掘金翻译计划,翻译掘金上优质的英文文章
- select_arg_from_python相关的测试程序
- python 中爬虫的运用
- (教学思路 c#之类一)声明类和对象、定义类成员及其引用
- 设置git协议clone代理
- 开发插件:分享10个非常实用IDEA插件,值得看一看!
- 大数据之MapReduce详解(MR的运行机制及配合WordCount实例来说明运行机制)
- ftp安装包_【干货分享】原来cisco通过FTP,TFTP系统升级是这样做的?
- aba问题mysql_Mysql中select + update并发更新问题
- iOS通过CIFilter对图像进行滤镜处理
- Matlab系列之小波分析基础
- arcgis中python计算面积的表达式_ArcGIS应用——四种计算图斑面积的方法
- 2020湖南省技能竞赛获奖名单_2020技能竞赛丨湖南省职业院校技能竞赛我校赛点圆满闭幕...
- 单机版pc端车牌识别
- 有关Cidaemon.exe服务占用大量CPU资源的解决办法
- Git 使用的一些命令以及Git commit 注释格式
- 带头结点单链表的基本使用
- 独角推荐,只需一个邮箱号就可以注册购买阿里云国际版
- ubuntukylin-16.04安装
热门文章
- MySQL表/视图/存储过程and函数/触发器/事件与数据库之间的关系
- matlab gpu deep learning_优秀!这个库帮你使用GPU加速传统机器学习方法和Pandas数据处理...
- UE3 性能调试:动态光照环境
- 为虚幻引擎4设置Visual Studio
- Spring @Async 注解
- 《需求工程》阅读笔记之三
- 现实中简单配置路由器
- HTML5 CANVAS 弹幕插件--DanMuer.js(V3.2.5)
- 温故js系列(7)-数组去重由慢到快由繁到简
- Ember.js 入门指南——番外篇,路由、模板的执行、渲染顺序