org.apache.thrift7.TBase和org.apache.thrift.TBase的区别

3

我找不到包含这种类的jar文件。请问在哪个libthrift 链接 jar文件中可以找到这个类和包。我找不到任何包含此包的jar文件。每次执行我的Java文件时,都会抛出以下异常:

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
3个回答

3

我添加了org.apache.thrift依赖项......但由于缺少org.apache.thrift7.TBase包,仍然出现相同的错误。但是,当我使用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命令时,它不会给我任何错误,也不会给我输出。 - Naresh

2

您是否在Maven依赖项中包含了org.apache.thrift?如果没有,请添加:

<dependency>
  <groupId>org.apache.thrift</groupId>
  <artifactId>libthrift</artifactId>
  <version>0.9.0</version>
</dependency>

2
我在pom.xml中添加了这个。但是问题是它有org.apache.thrift包而不是org.apache.thrift7,请注意末尾的7。因此,无法解决错误。 - Naresh

0
请包含以下内容:
<!-- https://mvnrepository.com/artifact/storm/libthrift7 -->
<dependency>
    <groupId>storm</groupId>
    <artifactId>libthrift7</artifactId>
    <version>0.7.0-2</version>
</dependency>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接