java.lang.NoSuchFieldError:当使用"inclup-client reactive&q



实例化客户端时发生错误

InfluxDBClientReactive influxDBClient = InfluxDBClientReactiveFactory.create(
influxConf.url(),
influxConf.username(),
influxConf.password().toCharArray());

quarkus-bom中排除依赖项

implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}") {
exclude group: "com.squareup.okhttp3", module: "okhttp"
}
implementation "com.influxdb:influxdb-client-reactive:6.4.0" 

否则(3.x.x(将被强制并将导致

'okhttp3.RequestBody okhttp3.RequestBody.create(java.lang.String, okhttp3.MediaType)'
java.lang.NoSuchMethodError: 'okhttp3.RequestBody okhttp3.RequestBody.create(java.lang.String, okhttp3.MediaType)

在同一行。

跟踪:

Companion
java.lang.NoSuchFieldError: Companion
at okhttp3.internal.Util.<clinit>(Util.kt:70)
at okhttp3.HttpUrl$Builder.parse$okhttp(HttpUrl.kt:1239)
at okhttp3.HttpUrl$Companion.get(HttpUrl.kt:1634)
at okhttp3.HttpUrl$Companion.parse(HttpUrl.kt:1643)
at okhttp3.HttpUrl.parse(HttpUrl.kt)
at com.influxdb.client.InfluxDBClientOptions$Builder$ParsedUrl.<init>(InfluxDBClientOptions.java:689)
at com.influxdb.client.InfluxDBClientOptions$Builder$ParsedUrl.<init>(InfluxDBClientOptions.java:681)
at com.influxdb.client.InfluxDBClientOptions$Builder.connectionString(InfluxDBClientOptions.java:504)
at com.influxdb.client.InfluxDBClientOptions$Builder.url(InfluxDBClientOptions.java:288)
at com.influxdb.client.reactive.InfluxDBClientReactiveFactory.create(InfluxDBClientReactiveFactory.java:105)

这个问题让我认为com.squareup.okio:okio也可能在这里发挥作用。

com.squareup.okio:okio:1.17.2
--- io.quarkus:quarkus-bom:2.11.2.Final
--- runtimeClasspath
com.squareup.okio:okio:3.0.0 -> 1.17.2
--- com.squareup.okhttp3:okhttp:4.10.0

Options.of是对该依赖关系中的方法的调用,而不是来自java的Optional。这里没有什么奇怪的,除了为fabric8io/kubernetes客户端强制执行的一些夸克亡灵术

exclude group: "com.squareup.okio", module: "okio"

来自quarkus-bom

因此您必须覆盖Selenium正在使用的okhttp。其中最重要的部分是覆盖或排除okio工件,对我来说,覆盖它比排除它更安全。希望你能把我的mvn转换成gradle。

<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.9.1</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp-urlconnection</artifactId>
<version>4.9.1</version>
</dependency>
<dependency>
<groupId>com.squareup.okio</groupId>
<artifactId>okio</artifactId>
<version>2.8.0</version>
</dependency>

最新更新