“线程中的异常”;螺纹-2“;java.lang.NoSuchMethodError:kotlin.io.ByteStreamsKt.readBytes(Ljava/io/InputStream;)用于PACT测试

“线程中的异常”;螺纹-2“;java.lang.NoSuchMethodError:kotlin.io.ByteStreamsKt.readBytes(Ljava/io/InputStream;)用于PACT测试,java,kotlin,junit,pact,Java,Kotlin,Junit,Pact,我在尝试使用Java运行一些PACT测试时遇到了这个kotlin异常,但不确定如何修复它 此处显示错误: 线程“thread-2”java.lang.NoSuchMethodError中出现异常: kotlin.io.ByteStreamsKt.readBytes(Ljava/io/InputStream;)[B 编辑 我已经更新了我的契约依赖项,以使用更多的最新版本,我仍然遇到同样的问题,但是只有当我有下面的依赖项作为它的一部分,并且不确定为什么 <parent> &l

我在尝试使用Java运行一些PACT测试时遇到了这个kotlin异常,但不确定如何修复它

此处显示错误:

线程“thread-2”java.lang.NoSuchMethodError中出现异常: kotlin.io.ByteStreamsKt.readBytes(Ljava/io/InputStream;)[B

编辑

我已经更新了我的契约依赖项,以使用更多的最新版本,我仍然遇到同样的问题,但是只有当我有下面的依赖项作为它的一部分,并且不确定为什么

 <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.3.RELEASE</version>
</parent>

org.springframework.boot

这是我目前的pom:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.hmhco</groupId>
<artifactId>update-catalog</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.3.RELEASE</version>
</parent>

<properties>
    <rest-assured.version>3.0.0</rest-assured.version>
    <json-schema-validator.version>3.3.0</json-schema-validator.version>
</properties>

<dependencies>
    <dependency>
        <groupId>io.rest-assured</groupId>
        <artifactId>rest-assured</artifactId>
        <version>${rest-assured.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>io.rest-assured</groupId>
        <artifactId>json-schema-validator</artifactId>
        <version>${json-schema-validator.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>au.com.dius</groupId>
        <artifactId>pact-jvm-consumer-junit5</artifactId>
        <version>4.0.10</version>
    </dependency>
    <dependency>
        <groupId>au.com.dius</groupId>
        <artifactId>pact-jvm-provider-junit</artifactId>
        <version>4.0.10</version>
    </dependency>

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>au.com.dius</groupId>
            <artifactId>pact-jvm-provider-maven</artifactId>
            <version>4.0.10</version>
            <configuration>
                <pactDirectory>target/pacts</pactDirectory>
                <pactBrokerUrl>http://pact-broker-hmh.devel.hmheng-qe.brnp.internal/</pactBrokerUrl>
                <projectVersion>${project.version}</projectVersion>
                <trimSnapshot>true</trimSnapshot>
            </configuration>
        </plugin>
    </plugins>
</build>

4.0.0
com.hmhco


非常感谢。

您出现此错误的一个可能原因(我假设)是因为您混合了Pact库的主要版本

<pact.version>3.5.24</pact.version>
<pact-jvm-provider-maven.version>3.5.9</pact-jvm-provider-maven.version>
<pact-jvm-maven.version>3.5.24</pact-jvm-maven.version>
<pact.jvm.consumer.junit.version>4.0.10</pact.jvm.consumer.junit.version>
3.5.24
3.5.9
3.5.24
4.0.10
您有版本3.5.9、3.5.24和4.0.10。您应该使用相同的主版本

版本3.5.x主要使用Kotlin(可能是版本1.2.x)编写,而版本4.0.x则使用Kotlin 1.3.x编写

我不确定Sprinboot为什么会影响事情,但可能Spring依赖项也带来了Kotlin标准库的一个版本


最好的办法是对所有Pact库使用4.0.10版,然后运行Maven dependency tree插件,并检查正在使用的Kotlin标准库的版本。

谢谢。我已经更新了依赖项和我在这里的帖子,但恐怕仍然会遇到同样的错误。修复方法是强制Maven使用正确的dependency treedencies添加以下内容:
org.jetbrains.kotlin kotlin stdlib 1.3.72 test com.google.code.gson gson 2.8.6
非常感谢!是的,添加这些额外的依赖项为我们解决了这个问题。:)