工程是基于Maven来构建
1、clojure如果是1.4.0会报如下错误,换成1.6.0即可解决
<dependency>
<groupId>org.clojure</groupId>
<artifactId>clojure</artifactId>
<version>1.6.0</version>
</dependency>
2.Caused by: java.lang.IllegalStateException: Detected both log4j-over-slf4j.jar AND slf4j-log4j12.jar on the class path, preempting StackOverflowError
原因:是引用了两个关于log4j的jar,造成死循环
解决办法:在pom.xml里添加
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version>1.7.7</version>
</dependency>
在其他的dependency里都加上如下过滤log4j包
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
3.guava包引起的错
解决办法:把guava10.jar包成guava11.jar
4.当时用Maven来构建时pom.xml里写的是clojure-1.6.0.jar,而storm-0.9.2所依赖的clojure是clojure-1.5.1.jar,所以报了如下错误,我百度基本上全搜了,都没找到是什么原因,无奈之下翻墙google,终于发现了这个错。
5、ClassNotFoundException: org.yaml.snakeyaml.Yaml
解决办法:
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>1.14</version>
</dependency>
</dependencies>
6、ClassNotFoundException: kafka.api.OffsetRequest
原因:用kafka_2.10的时候报错
解决办法:换成kafka_2.9.2
7、storm-0.9.1需要zookeeper-3.3.3.jar,我用zookeeper-3.4.5.jar报如下错误
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.panguoyuan.kafkastorm.week8.MyTopology.main(MyTopology.java:56)
Caused by: java.lang.ClassNotFoundException: org.apache.zookeeper.server.NIOServerCnxn$Factory
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)