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>