java.lang.NoClassDefFoundError: com/google/common/base/MoreObjects 在 appengine 上初始化 pubsub 时
Posted
技术标签:
【中文标题】java.lang.NoClassDefFoundError: com/google/common/base/MoreObjects 在 appengine 上初始化 pubsub 时【英文标题】:java.lang.NoClassDefFoundError: com/google/common/base/MoreObjects when initializing pubsub on appengine 【发布时间】:2017-12-15 22:18:53 【问题描述】:我尝试在 appEngine 上运行此代码(在我的 web.xml 中定义了 java8)
public TopicName createTopic(final String topicNameStr) throws Exception
checkInit();
final TopicAdminSettings topicAdminSettings =
TopicAdminSettings.defaultBuilder()
.setChannelProvider(channelProvider)
.build();
TopicName topicName = TopicName.create(projectId, topicNameStr);
try (final TopicAdminClient topicAdminClient = TopicAdminClient.create(topicAdminSettings))
topicAdminClient.createTopic(topicName);
return topicName;
我得到这个错误:
Uncaught exception from servlet
java.lang.NoClassDefFoundError: com/google/common/base/MoreObjects
at io.grpc.internal.AbstractManagedChannelImplBuilder.build(AbstractManagedChannelImplBuilder.java:284)
at com.google.api.gax.grpc.InstantiatingChannelProvider.createChannel(InstantiatingChannelProvider.java:135)
at com.google.api.gax.grpc.InstantiatingChannelProvider.getChannel(InstantiatingChannelProvider.java:116)
at com.google.api.gax.grpc.ChannelAndExecutor.create(ChannelAndExecutor.java:65)
at com.google.api.gax.grpc.ClientSettings.getChannelAndExecutor(ClientSettings.java:77)
at com.google.cloud.pubsub.spi.v1.TopicAdminClient.<init>(TopicAdminClient.java:150)
at com.google.cloud.pubsub.spi.v1.TopicAdminClient.create(TopicAdminClient.java:141)
at linqmap.cloud.google.pubsub.PubSubFactory.createTopic(PubSubFactory.java:142)
我该如何解决这个问题?
【问题讨论】:
尝试使用番石榴18.0 or later
:jar。
【参考方案1】:
尝试使用 guava 18.0 或更高版本,这将解决问题。
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>
【讨论】:
这个语法对于 Maven 来说已经足够好了。对于 Gradle 尝试:实现组:'com.google.guava',名称:'guava',版本:'18.0' 但是,在我的情况下,这并没有解决 API以上是关于java.lang.NoClassDefFoundError: com/google/common/base/MoreObjects 在 appengine 上初始化 pubsub 时的主要内容,如果未能解决你的问题,请参考以下文章