Restlet: не удалось найти конвертер для этого представления: [application/json,UTF-8]

Я исследовал это довольно тщательно, но не смог найти решение. Я создал простейший модульный тест для извлечения одного объекта, но все еще получаю исключение «Не удалось найти конвертер». Я включил org.restlet.ext.servlet.jar, org.json.jar и org.restlet.ext.net.jar в свой путь к классу. Я также вижу возвращенный json и могу печатать с помощью метода cr.get(MediaType.APPLICATION_JSON).

ClientResource cr = new ClientResource("http://localhost:8888/r/establishment/29");
Establishment est = cr.get(Establishment.class);
System.out.println("Establishment name is " + est.getName());

Я использую restlet-gae-2.1rc6 на GAE vs 1.7.1.


person Chris Hinshaw    schedule 14.09.2012    source источник
comment
Возможно, вы захотите отредактировать свой вопрос и добавить соответствующую информацию — опишите свою проблему, покажите нам, какие исследования вы провели. В нынешнем виде я не думаю, что кто-то может понять вашу проблему.   -  person Sujay    schedule 15.09.2012
comment
Извините, не хотел задавать вопрос. Я был посередине и проверял некоторые вещи с помощью отладчика. Я заметил, что служба Converter getBestHelper вызывалась несколько раз, и она находила преобразователь org json, но на более поздних итерациях она не находила правильный преобразователь и переходила к else в методе toRepresentation. Не уверен, почему это происходит.   -  person Chris Hinshaw    schedule 20.09.2012
comment
У меня та же проблема, из-за чего любое значение, полученное с сервера, равно нулю. @ChrisHinshaw, ты решил это?   -  person AlikElzin-kilaka    schedule 25.10.2013
comment
Я перешел на трикотаж для отдыха апи и остался очень доволен. Извините, возможно, это не тот ответ, который вы искали, но Джерси работал намного лучше для моих нужд. Одна вещь, однако убедитесь, что вы указываете тип принятия при создании своего клиентского ресурса. Вы должны установить accept(MediaType.APPLICATION_JSON) при использовании json. Вероятно, это была проблема с моей реализацией.   -  person Chris Hinshaw    schedule 25.10.2013
comment
RE Jersey, мне не удалось заставить Jersey работать с движком приложения Google — проблемы с зависимостями.   -  person AlikElzin-kilaka    schedule 25.10.2013
comment
RE ваша проблема, я нашел решение. Вам просто нужно было зарегистрировать конвертер. См. более подробное объяснение здесь: stackoverflow.com/a/19593796/435605   -  person AlikElzin-kilaka    schedule 25.10.2013


Ответы (1)


Вам необходимо зарегистрировать конвертер. Пример:

Engine.getInstance().getRegisteredConverters().add(new JacksonConverter());

См. вопрос с тем же решением, но с другой проблемой: Пример рестлета с Android на gae не работает на стороне Android

Я нашел решение здесь: https://stackoverflow.com/a/5205993/435605

person AlikElzin-kilaka    schedule 25.10.2013