首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ClassNotFoundException:找不到io.opencensus.trace.propagation.TextFormat

ClassNotFoundException:找不到io.opencensus.trace.propagation.TextFormat
EN

Stack Overflow用户
提问于 2019-07-09 18:21:43
回答 1查看 2.5K关注 0票数 3

我在apache karaf 4.2.6和java 11中有一个模块,可以在Google Play中验证购买收据。我正在使用androidpublisher。

当它第一次发送请求时,我在OpenCensusUtils类中得到一个错误:

代码语言:javascript
复制
androidPublisher.purchases().products().get(packageName, productId, purchaseToken).execute()

java.lang.ClassNotFoundException: io.opencensus.trace.propagation.TextFormat not found by wrap_file__Users_USER_NAME_.m2_repository_io_opencensus_opencensus-contrib-http-util_0.22.1_opencensus-contrib-http-util-0.22.1.jar

在随后的时间里,我在com.google.api.client.http.HttpRequest类中得到了这个点private final Tracer tracer = OpenCensusUtils.getTracer()的错误

java.lang.NoClassDefFoundError: Could not initialize class com.google.api.client.http.OpenCensusUtils

以下是依赖项:

代码语言:javascript
复制
    <dependency>
        <groupId>com.google.apis</groupId>
        <artifactId>google-api-services-androidpublisher</artifactId>
        <version>v3-rev92-1.25.0</version>
        <exclusions>
            <exclusion>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>com.google.http-client</groupId>
        <artifactId>google-http-client</artifactId>
        <version>1.29.2</version>
    </dependency>

    <dependency>
        <groupId>io.opencensus</groupId>
        <artifactId>opencensus-api</artifactId>
        <version>0.22.1</version>
    </dependency>
    <dependency>
        <groupId>io.opencensus</groupId>
        <artifactId>opencensus-contrib-http-util</artifactId>
        <version>0.22.1</version>
    </dependency>

此外,google-api-clientgoogle-http-client-jackson2google-oauth-client的版本为1.29.2

在karaf中,我看到库opencensus-api正在导出一个包含类TextFormat的包io.opencensus.trace.propagation

我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2020-01-22 04:44:21

我解决了这个问题,将io.opencensus和io.grpc添加到模块构建区域的私有包中,如下所示。它使它们嵌入到本地。

代码语言:javascript
复制
....
 <build>
    <plugins>
      <plugin>
       ....
        <configuration>
          <instructions>
            <Bundle-SymbolicName> ${project.artifactId} </Bundle-SymbolicName>
            <Private-Package>
             META-INF.services;-split-package:=merge-first,
             com.google.*;-split-package:=merge-first,
             io.opencensus.*;-split-package:=merge-first,
             io.grpc.*;-split-package:=merge-first
            </Private-Package>
            ....
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56950415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档