RestyGWT: поддерживает ли он обычный текст?

Я не могу получить обычный текст с помощью RestyGWT. Очень простой тестовый сервис выглядит так:

@GET
@Consumes(MediaType.TEXT_PLAIN)
@Produces(MediaType.TEXT_PLAIN)
void test(MethodCallback<String> callback);

На стороне клиента я всегда получаю:

Response was NOT a valid JSON document

Глядя на ответ HTTP, я вижу, что тип контента установлен правильно:

Content-Type:text/plain

В чем проблема? Почему RestyGWT пытается разобрать это как JSON? Я делаю что-то неправильно?


person andrew.z    schedule 01.08.2014    source источник


Ответы (2)


Ну, RestyGWT - это библиотека Json, насколько я знаю, она не предназначена для обработки простого текста, XML или чего-либо еще. "foo" не является допустимыми данными Json, должно быть ["foo"] или {"stuff": "foo"}.

Действительно, в нашем Rest API мы пытались отправлять чистый текст (идентификатор), но в итоге сделали простой объект, обертывающий идентификатор.

person PhiLho    schedule 01.08.2014

Если вы будете использовать TextCallback вместо MethodCallback<String>, вы не получите эту ошибку. Он автоматически установит для заголовка Accept значение text/plain, поэтому вам не нужно использовать аннотацию @Produces в асинхронном интерфейсе.

person Krzysztof Suchcicki    schedule 24.11.2014
comment
Для справки, это объясняется в официальной документации ( в REST API), но не в javadocs. Как ни странно, TextCallback расширяет MethodCallback<String>. - person Gilberto Torrezan; 01.07.2015