Java 改装2、Gson和;OkHttpClient

Java 改装2、Gson和;OkHttpClient,java,maven,gson,retrofit,retrofit2,Java,Maven,Gson,Retrofit,Retrofit2,我正在尝试获取包含来自的数据的列表。我用另一种方法做到了这一点。然而,在使用改造生成方法时,我面临一个问题 static final String API_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ssX"; static final Gson gson = new GsonBuilder() .setDateFormat(API_DATE_FORMAT) .create(); OkHttpClient.Builder httpCl

我正在尝试获取包含来自的数据的列表。我用另一种方法做到了这一点。然而,在使用改造生成方法时,我面临一个问题

static final String API_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ssX";
static final Gson gson = new GsonBuilder()
    .setDateFormat(API_DATE_FORMAT)
    .create();

OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
Retrofit retrofit = new Retrofit.Builder()
    .baseUrl("https://jsonplaceholder.typicode.com")
    .addConverterFactory(GsonConverterFactory.create(gson))
    .client(httpClient.build())
    .build();
我稍后再打电话

Controller controller = retrofit.create(Controller.class);

Call<List<Album>> call = controller.getAlbums();
Bukkit.broadcastMessage("Running: " + call.toString());
call.enqueue(new Callback<List<Album>>() {
    @Override
    public void onResponse(Call<List<Album>> call, Response<List<Album>> response) {
        Bukkit.broadcastMessage("VROOM");
        assert response.body() != null;
        response.body().forEach(album -> Bukkit.broadcastMessage(album.toString()));
    }

    @Override
    public void onFailure(Call<List<Album>> call, Throwable t) {
        getServer().getLogger().info(t.getMessage());
    }
});
全堆栈跟踪

Exception in thread "OkHttp Dispatcher"
[22:47:00 WARN]: java.lang.NoSuchMethodError: com.google.gson.Gson.newJsonReader(Ljava/io/Reader;)Lcom/google/gson/stream/JsonReader;
[22:47:00 WARN]:        at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:37)
[22:47:00 WARN]:        at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:27)
[22:47:00 WARN]:        at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:223)
[22:47:00 WARN]:        at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:121)
[22:47:00 WARN]:        at okhttp3.RealCall$AsyncCall.execute(RealCall.java:206)
[22:47:00 WARN]:        at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
[22:47:00 WARN]:        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
[22:47:00 WARN]:        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
[22:47:00 WARN]:        at java.lang.Thread.run(Unknown Source)
xml。我尝试过多个版本,例如回到旧版本并尝试。仍然得到相同的错误。下面的所有库都是用jar生成的。我仍然得到这个错误

<?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>yeet</groupId>
    <artifactId>yeeted</artifactId>
    <version>1.1</version>
    <packaging>jar</packaging>

    <name>Yeeted</name>

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <build>
        <defaultGoal>clean package</defaultGoal>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.1.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <createDependencyReducedPom>false</createDependencyReducedPom>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

    <repositories>
        <repository>
            <id>spigotmc-repo</id>
            <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
        </repository>
        <repository>
            <id>sonatype</id>
            <url>https://oss.sonatype.org/content/groups/public/</url>
        </repository>
    </repositories>

    <dependencies>

        <!-- https://mvnrepository.com/artifact/com.squareup.retrofit2/retrofit -->

        <dependency>
            <groupId>com.squareup.retrofit2</groupId>
            <artifactId>retrofit</artifactId>
            <version>2.9.0</version>
            <scope>compile</scope>
        </dependency>

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

        <dependency>
            <groupId>com.squareup.retrofit2</groupId>
            <artifactId>converter-gson</artifactId>
            <version>2.9.0</version>
            <scope>compile</scope>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.6</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
        </dependency>

        <dependency>
            <groupId>org.spigotmc</groupId>
            <artifactId>spigot-api</artifactId>
            <version>1.12.2-R0.1-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
</project>

4.0.0
耶特

(pastebin)

尝试执行
mvn依赖项:树
并检查依赖项冲突在执行
mvn依赖项:树
后,我获得了
构建成功
。这真的很奇怪,每个库都是用jar编译的,但是我得到了NoSuchMethodError。你能更新问题中dependency:tree的输出吗?补充道,我创建了一个新的项目并运行了示例类。它工作得非常好,但是,在我当前的项目中它没有。我的pom.xml现在显示了所有内容。尝试执行
mvn dependency:tree
并检查依赖项冲突在执行
mvn dependency:tree
后,我获得了
构建成功。这真的很奇怪,每个库都是用jar编译的,但是我得到了NoSuchMethodError。你能更新问题中dependency:tree的输出吗?补充道,我创建了一个新的项目并运行了示例类。它工作得非常好,但是,在我当前的项目中它没有。我的pom.xml现在显示了所有内容。
Exception in thread "OkHttp Dispatcher"
[22:47:00 WARN]: java.lang.NoSuchMethodError: com.google.gson.Gson.newJsonReader(Ljava/io/Reader;)Lcom/google/gson/stream/JsonReader;
[22:47:00 WARN]:        at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:37)
[22:47:00 WARN]:        at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:27)
[22:47:00 WARN]:        at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:223)
[22:47:00 WARN]:        at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:121)
[22:47:00 WARN]:        at okhttp3.RealCall$AsyncCall.execute(RealCall.java:206)
[22:47:00 WARN]:        at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
[22:47:00 WARN]:        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
[22:47:00 WARN]:        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
[22:47:00 WARN]:        at java.lang.Thread.run(Unknown Source)
<?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>yeet</groupId>
    <artifactId>yeeted</artifactId>
    <version>1.1</version>
    <packaging>jar</packaging>

    <name>Yeeted</name>

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <build>
        <defaultGoal>clean package</defaultGoal>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.1.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <createDependencyReducedPom>false</createDependencyReducedPom>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

    <repositories>
        <repository>
            <id>spigotmc-repo</id>
            <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
        </repository>
        <repository>
            <id>sonatype</id>
            <url>https://oss.sonatype.org/content/groups/public/</url>
        </repository>
    </repositories>

    <dependencies>

        <!-- https://mvnrepository.com/artifact/com.squareup.retrofit2/retrofit -->

        <dependency>
            <groupId>com.squareup.retrofit2</groupId>
            <artifactId>retrofit</artifactId>
            <version>2.9.0</version>
            <scope>compile</scope>
        </dependency>

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

        <dependency>
            <groupId>com.squareup.retrofit2</groupId>
            <artifactId>converter-gson</artifactId>
            <version>2.9.0</version>
            <scope>compile</scope>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.6</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
        </dependency>

        <dependency>
            <groupId>org.spigotmc</groupId>
            <artifactId>spigot-api</artifactId>
            <version>1.12.2-R0.1-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
</project>