3

I am not being able to find any jar which contain this kind of package. Can, anyone tell me in which libthrift Link jar i can find this class and package. I couldn't find any jar containing this package. Everytime i execute my java file it throw following expection:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/thrift7/TBase
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at backtype.storm.topology.TopologyBuilder.initCommon(TopologyBuilder.java:215)
    at backtype.storm.topology.TopologyBuilder.setSpout(TopologyBuilder.java:178)
    at backtype.storm.topology.TopologyBuilder.setSpout(TopologyBuilder.java:164)
    at com.test.newpackage.TopologyMain.main(TopologyMain.java:12)
Caused by: java.lang.ClassNotFoundException: org.apache.thrift7.TBase
    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)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    ... 16 more
Naresh
  • 5,073
  • 12
  • 67
  • 124

3 Answers3

3

Try searching Central when you're looking for a class. fc:"org.apache.thrift.TBase" suggests org.apache.thrift:libthrift:0.9.0.

For libthrift7, see the instructions on the Storm wiki: use the http://clojars.org/repo repository and depend directly on storm:storm. storm:libthrift7 will be brought in transitively.

Joe
  • 29,416
  • 12
  • 68
  • 88
  • I added `org.apache.thrift` dependency.....But still getting the same error due to missing *org.apache.thrift7.TBase* package. But, when i use `java -cp ./target/wordcount-0.0.1.jar:/usr/local/hadoop/storm/storm-0.8.1.jar:/usr/local/hadoop/storm/lib/*:/usr/local/hadoop/storm/conf/storm.yaml com.test.newpackage.TopologyMain resource/words.txt` command it doesn't give me any error nor gives me output. – Naresh Jul 23 '13 at 12:21
  • 1
    See [How can I create an executable jar with dependencies using Maven?](http://stackoverflow.com/questions/574594/how-can-i-create-an-executable-jar-with-dependencies-using-maven) – Joe Jul 24 '13 at 11:43
2

Did you include org.apache.thrift in the maven dependencies.? If not please include:

<dependency>
  <groupId>org.apache.thrift</groupId>
  <artifactId>libthrift</artifactId>
  <version>0.9.0</version>
</dependency>
user2339071
  • 4,254
  • 1
  • 27
  • 46
  • 2
    I added this in pom.xml. But, the point is it has the `org.apache.thrift` package NOT `org.apache.thrift7` mind the 7 at the end. So, not able to resolve the error. – Naresh Jul 23 '13 at 12:23
0

please include following:

<!-- https://mvnrepository.com/artifact/storm/libthrift7 -->
<dependency>
    <groupId>storm</groupId>
    <artifactId>libthrift7</artifactId>
    <version>0.7.0-2</version>
</dependency>
Piyush Mittal
  • 1,860
  • 1
  • 21
  • 39