Upgrade vom jersey-client-1.9 jersey-client-2.8
Ich bin mit jersey-client-1.9
. Beispiel-code:
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
Client client = Client.create();
webResource = client.resource("http://localhost:8047/storage/hive.json");
String input = //rest request
ClientResponse response = webResource.type("application/json").post(ClientResponse.class, input);
String queryRespose = response.getEntity(String.class);
Als dieses Projekt hat sich von com.sun.jersey.api.client
zu org.glassfish.jersey.client
. Wie das zu erreichen ist in jersey-client-2.8
?
Edit:
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Response;
Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://localhost:8047/query.json");
String input =//rest request
Response response = target.request().post(Entity.json(input));
String queryRespose = response.readEntity(String.class);
Dieser gearbeitet...:)
- Ich weiß nicht, warum gibt es alles rund um
com.sun.jersey
im exception-Meldung. Sie benötigen, um loszuwerden, alles, was Jersey 1.x (com.sun.jersey
) im Zusammenhang, wenn du gehst zu verwenden, Trikot 2.x (org.glassfish.jersey
) - my bad.. ich hatte beide 1.9 & 2.8 jar-Dateien in mein Projekt. Ich entfernte 1.9. Nun hat alles wunderbar funktioniert...Danke..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit Trikot 2.x, können Sie bauen die
Client
mitClientBuilder
In Jersey 2.x
WebTarget
ist Analog zu Trikot 1.xWebResource
, und statt der Berufungclient.resource()
um dieWebResource
rufen Sieclient.target()
um dieWebTarget
Dann müssen Sie rufen Sie
request()
auf dieWebTarget
um eine- Aufruf.Builder
, die es erlauben, Sie an die Kette andere AnrufeSenden eine Entität, die wir brauchen, um eine
Person
zu einem derInvocation.Builder
's request-Methode. Zum BeispielUm die Antwort Lesen, verwenden Sie
response.readEntity(String.class)
. Also insgesamt, die Sie tun können,Siehe Auch:
UPDATE
Müssen Sie möglicherweise auch die folgende Abhängigkeit für JSON/POJO Unterstützung
Dann registrieren Sie die
JacksonFeature
mit dem Kunden. Das ist soinput
(wenn Sie verwenden möchten ein POJO-statt String) können serialisiert werden, um JSON -