Spring Boot Sping Boot with Minio Client:okhttp3.RequestBody,创建([BLokhttp 3/MediaType;)Lokhttp3/RequestBody;不存在错误

ffdz8vbo  于 2023-04-30  发布在  Spring
关注(0)|答案(2)|浏览(565)

我正在尝试通过在Spring Boot 中使用minio客户端连接到minio服务器。获取此错误:
试图调用不存在的方法。尝试从以下位置进行:

io.minio.S3Base.<clinit>(S3Base.java:104)

以下方法不存在:

okhttp3.RequestBody.create([BLokhttp3/MediaType;)Lokhttp3/RequestBody;

方法的类okhttp3。RequestBody可从以下位置获得:

jar:file:/home/user/.m2/repository/com/squareup/okhttp3/okhttp/3.14.4/okhttp-3.14.4.jar!/okhttp3/RequestBody.class

从以下位置加载:

file:/home/user/.m2/repository/com/squareup/okhttp3/okhttp/3.14.4/okhttp-3.14.4.jar

行动:
更正应用程序的类路径,使其包含一个兼容的okhttp3版本。请求体
进程已完成,退出代码为0
Pom.xml:

<?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.tigerit.tigerhrm</groupId>
    <artifactId>tigerit-hrm-api</artifactId>
    <version>beta-1.4.0</version>
    <!--<packaging>jar</packaging>-->
    <packaging>war</packaging>

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

      <!--  &lt;!&ndash; https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent &ndash;&gt;
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.0</version>-->

    </parent>

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <other lib versions here>   
        
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

     //some_dependecies are removed to reduce the file size
       

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
        </dependency>

        <!-- log4j -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>${logger.version}</version>
        </dependency>

        <dependency>
            <groupId>org.flywaydb</groupId>
            <artifactId>flyway-core</artifactId>
        </dependency>

        <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.7</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.4</version>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.12.0</version>
        </dependency>

  <!--    https://mvnrepository.com/artifact/io.minio/minio-->
        <dependency>
            <groupId>io.minio</groupId>
            <artifactId>minio</artifactId>
            <version>8.3.9</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>3.14.4</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>com.mysema.maven</groupId>
                <artifactId>apt-maven-plugin</artifactId>
                <version>1.1.3</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>process</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/generated-sources</outputDirectory>
                            <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

我用的是Java 8。我尝试在pom中不添加com.squareup.okhttp3依赖项。xml文件。两个案子都不管用。

gk7wooem

gk7wooem1#

**解决方案:**尝试覆盖pom中的okhttp3.version属性,并将其设置为com.squareup.okhttp3:okhttp依赖项的较新版本(4.10.0为我工作)。或者自己显式地设置这个依赖关系。或者,如果可行的话,试着更新你的starter-parent版本(虽然不确定这是否适用于java 8)。
**推理:**maven(或者,在我的例子中,gradle)获取旧版本的okhttp库的原因是这个特定的库版本不幸地固定在2之前的版本的spring Boot 依赖项中。七:

<okhttp3.version>3.14.9</okhttp3.version>

在2.7中,他们将其更改为4.9.3

r6l8ljro

r6l8ljro2#

尝试更新Sping Boot 版本。更新23.2到2.7.0,它工作。

相关问题