как отправить JSON-объект от клиента REST, используя javax.с WS.РС.клиента.WebTarget
у меня есть POJO, приведенный ниже, который я хочу поместить на сервер как JSON или XML.
вот что я сделал
клиент:
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);
}
примеры, которые я нашел в интернете, использовали WebResource.
Я не знаю, как это сделать с помощью WebTarget. То, что я сделал, взято из некоторого примера, найденного на SO but Entity.entity () дает ошибку undefined Method entity(friend, Строка.)
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
                 + "]";
}
пожалуйста, руководство, как это сделать.
спасибо
1 ответов
есть два разных основных варианта Джерси, 1.x и 2.x, вы, кажется, пытаетесь использовать комбинацию обоих, которая не будет работать. В 2.версии x не имеют некоторых классов, как в 1.X и наоборот.
если вы хотите использовать Джерси 2.x, тогда вы должны использовать Response, а не ClientResponse
Response response = target.request().put(Entity.json(friend));
                                        // .json == automatic 'application/json'
- посмотреть работа с API клиента для 2.x
- также, как указано в вашем предыдущие пост, геттеры и сеттеры должны быть открытыми для Friendкласс
- Смотрите также WebTargetAPI
основные поломки.
- 
вызов request()onWebTargetвозвращаетInvocation.BuidlerInvocation.Builder builder = target.request();
- 
как только мы позвоним put, мыResponseResponse response = builder.put(Entity.json(friend));
- 
для извлечения известного типа из ответа, мы могли бы использовать readEntity(Class type)String responseString = response.readEntity(String.class); response.close();
