java.lang.NoClassDefFoundError: Could not initialize class org.apache.hadoop.hbase.util.ByteStringer
在创建对象ByteStringer的时候,会调用HBaseZeroCopyByteString,而该类HBaseZeroCopyByteString继承了LiteralByteString,LiteralByteString在3.0以下的版本中,如:
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>2.6.0</version>
</dependency>
在这个包里面是包级别可见的,能够被继承的。
在3.0以上的版本中,如:
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.0.0</version>
</dependency>
该类LiteralByteString是ByteString抽象类的内部静态类,这时就会出现继承的问题,在获取结果的时候,就会出现标题中出现的异常。
以上的问题,出现在hbase-protocol的版本如下:
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-protocol</artifactId>
<version>1.1.6</version>
</dependency>