Mam podanego POJO, które chcę PUT do serwera jako JSON lub XML.Jak wysłać obiekt Json z klienta REST za pomocą javax.ws.rs.client.WebTarget
To co mam zrobić
klient:
ClientConfig config = new ClientConfig();
Client client = ClientBuilder.newClient(config);
WebTarget target = client.target(getBaseURI());
public void putFriend(String uri , Friend friend)
{
System.out.println(friend.toString());
target = target.path(some_path).path(uri);
ClientResponse response = target.request(MediaType.APPLICATION_JSON).put(Entity.entity(friend,MediaType.APPLICATION_JSON),ClientResponse.class);
}
Przykłady znalazłem na internecie stosował WebResource.
Nie wiem, jak to zrobić, używając WebTarget. To, co zrobiłem, jest wzięte z jakiegoś przykładu znalezionego na SO, ale Entity.entity() podaje błąd niezdefiniowanej encji metody (friend, String).
POJO
@XmlRootElement
public class Friend{
private String friendURI;
private String event;
private String uri;
String getUri() {
return uri;
}
void setUri(String uri) {
this.uri = uri;
}
String getFriendURI() {
return friendURI;
}
void setFriendURI(String friendURI) {
this.friendURI = friendURI;
}
String getEvent() {
return event;
}
void setEvent(String event) {
this.event = event;
}
public String toString() {
return "Friend [friendURI=" + friendURI + ", uri=" + uri + ", event=" + event
+ "]";
}
proszę kierować, jak to zrobić.
Dzięki
dziękuję za pomoc mnie za każdym razem. Entity.json (friend) podaje błąd, który nie definiuje metody json (friend). – user3275095
Upewnij się, że 'Podmiot' to [' javax.ws.rs.client.Entity'] (https://docs.oracle.com/javaee/7/api/javax/ws/rs/client/Entity.html) –
Och, przykro mi, źle klasa Entity została zaimportowana. Poprawiono to. Dzięki. I tak pobierające i ustawiające są publiczne. Właśnie skopiowałem kod ze starszego postu. – user3275095