Я пытаюсь создать клиент jersey, который отправляет запрос на получение в веб-службу RESTful. Но я получаю следующую ошибку:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/ws/rs/client/ClientBuilder
at helper.RestClient.<init>(RestClient.java:23)
at MyTest.main(MyTest.java:11)
Caused by: java.lang.ClassNotFoundException: javax.ws.rs.client.ClientBuilder
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 2 more
Я использую следующие зависимости Gradle:
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
compile group: 'com.google.actions', name: 'actions-on-google', version: '1.+'
compile group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'
testCompile group: 'junit', name: 'junit', version: '4.12'
compile 'com.google.firebase:firebase-admin:6.14.0'
compile group: 'org.glassfish.jersey.core', name: 'jersey-client', version: '2.31'
compile group: 'org.glassfish.jersey.media', name: 'jersey-media-json-jackson', version: '2.31'
}
Это код моего клиента jersey:
package helper;
import domain.Medication;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
public class RestClient {
private static final String REST_URI = <URL>
private Client client;
public RestClient() {
client = ClientBuilder.newClient();
}
public Medication fetchMedication(String id, String token) {
return client
.target(REST_URI)
.path("medications/" + id)
.request(MediaType.APPLICATION_JSON)
.header(HttpHeaders.AUTHORIZATION, "Bearer " + token)
.get(Medication.class);
}
}