hbase-client-1.2.1 和 guava jar包冲突问题

springboot嵌入swagger 同时需要访问hbase的场景

com.google.common.collect.FluentIterable.concat 报错
Caused by: com.google.common.util.concurrent.ExecutionError: java.lang.NoSuchMethodError: com.google.common.collect.FluentIterable.concat(Ljava/lang/Iterable;Ljava/lang/Iterable;)Lcom/google/common/collect/FluentIterable;
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2201)
    at com.google.common.cache.LocalCache.get(LocalCache.java:3937)
    at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941)
    at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824)
    at springfox.documentation.schema.CachingModelDependencyProvider.dependentModels(CachingModelDependencyProvider.java:58)
    at springfox.documentation.schema.DefaultModelProvider.dependencies(DefaultModelProvider.java:128)
    at springfox.documentation.schema.CachingModelProvider.dependencies(CachingModelProvider.java:68)
    at springfox.documentation.spring.web.scanners.ApiModelReader.populateDependencies(ApiModelReader.java:136)
    at springfox.documentation.spring.web.scanners.ApiModelReader.read(ApiModelReader.java:78)
    at springfox.documentation.spring.web.scanners.ApiListingScanner.scan(ApiListingScanner.java:133)
    at springfox.documentation.spring.web.scanners.ApiDocumentationScanner.scan(ApiDocumentationScanner.java:71)
    at springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper.scanDocumentation(DocumentationPluginsBootstrapper.java:101)
com.google.common.base.Stopwatch 报错
java.lang.IllegalAccessError: tried to access method com.google.common.base.Stopwatch.<init>()V from class org.apache.hadoop.hbase.zookeeper.MetaTableLocator
    at org.apache.hadoop.hbase.zookeeper.MetaTableLocator.blockUntilAvailable(MetaTableLocator.java:601)
    at org.apache.hadoop.hbase.zookeeper.MetaTableLocator.blockUntilAvailable(MetaTableLocator.java:585)
    at org.apache.hadoop.hbase.zookeeper.MetaTableLocator.blockUntilAvailable(MetaTableLocator.java:564)
    at org.apache.hadoop.hbase.client.ZooKeeperRegistry.getMetaRegionLocation(ZooKeeperRegistry.java:61)
    at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateMeta(ConnectionManager.java:1211)
    at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1178)
    at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.relocateRegion(ConnectionManager.java:1152)
    at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegionInMeta(ConnectionManager.java:1357)
    at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1181)
    at org.apache.hadoop.hbase.client.AsyncProcess.submit(AsyncProcess.java:395)
    at org.apache.hadoop.hbase.client.AsyncProcess.submit(AsyncProcess.java:344)
    at org.apache.hadoop.hbase.client.BufferedMutatorImpl.backgroundFlushCommits(BufferedMutatorImpl.java:238)
    at org.apache.hadoop.hbase.client.BufferedMutatorImpl.flush(BufferedMutatorImpl.java:190)
    at org.apache.hadoop.hbase.client.HTable.flushCommits(HTable.java:1434)
    at org.apache.hadoop.hbase.client.HTable.put(HTable.java:1030)
    at com.jd.businesscollege.shop.dao.hbase.HBaseUtil.put(HBaseUtil.java:142)
    at com.jd.businesscollege.shop.service.hbase.impl.CourseViewHistoryHBaseServiceImpl.addCourseViewHistory(CourseViewHistoryHBaseServiceImpl.java:85)
    at com.jd.businesscollege.shop.service.jmq.listener.CourseViewHistoryMessageListener.dealMessage(CourseViewHistoryMessageListener.java:65)
    at com.jd.businesscollege.shop.service.jmq.listener.CourseViewHistoryMessageListener.onMessage(CourseViewHistoryMessageListener.java:52)
    at com.jd.jmq.client.consumer.TopicConsumer$1.call(TopicConsumer.java:763)
    at com.jd.jmq.client.consumer.TopicConsumer$1.call(TopicConsumer.java:720)
    at com.jd.jmq.client.consumer.ConsumerRetryLoop.execute(ConsumerRetryLoop.java:33)
    at com.jd.jmq.client.consumer.TopicConsumer.dispatchMessages(TopicConsumer.java:720)
    at com.jd.jmq.client.consumer.TopicConsumer$TopicMessageDispatcher.dispatch(TopicConsumer.java:873)
    at com.jd.jmq.client.consumer.GroupConsumer.pull(GroupConsumer.java:336)
    at com.jd.jmq.client.consumer.GroupConsumer$QueueConsumer.run(GroupConsumer.java:562)
    at java.lang.Thread.run(Thread.java:745)
单一解决此方式可以通过降低guava jar 包版本,只要是17.0版本以下即可。
主要原因:原因是高版本的guava把com.google.common.base.Stopwatch类的构造函数改成非public
终极解决方式
  @Deprecated
  public Stopwatch() {
    this(Ticker.systemTicker());
  }

  /**
   * Creates (but does not start) a new stopwatch, using the specified time
   * source.
   *
   * @deprecated Use {@link Stopwatch#createUnstarted(Ticker)} instead.
   */
  @Deprecated
  public Stopwatch(Ticker ticker) {
    this.ticker = checkNotNull(ticker, "ticker");
  }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值