ClassNotFoundException: io.opencensus.trace.propagation.TextFormat не найден
У меня есть модуль в Apache Karaf 4.2.6 с Java 11, который проверяет квитанции о покупке в Google Play. Я пользуюсь androidpublisher.
Когда он отправляет запрос в первый раз, я получаю сообщение об ошибке в классе OpenCensusUtils:
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
Вот зависимости:
<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-client
, google-http-client-jackson2
а также google-oauth-client
имеет версию 1.29.2
В карафе я вижу библиотеку opencensus-api
экспортирует пакет io.opencensus.trace.propagation
который содержит класс TextFormat.
Что я делаю неправильно?
0 ответов
Я решил, добавив io.opencensus и io.grpc в Private-Package области сборки модуля следующим образом. Это заставило их встраивать локально.
....
<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>
....