2013-03-02 2 views
1

У меня есть следующий веб-сервис, в котором я хочу вернуться и значение массиваКак вернуть массив из Restful Web-сервиса?

@GET 
@Consumes("text/plain") 
@Produces("text/plain") 
public String[] getText(@PathParam("name") String Uname) { 
    //TODO return proper representation object 
    System.out.println("In Method " + Uname); 
    String arr[]=null; 
    arr=new String[2]; 
    arr[0]="demo"; 
    arr[1]="demo2"; 
    return arr; 
} 

Но когда я проверить этот веб-сервисы он дает мне эту ошибку: GET RequestFailed RequestFailed --> Status: (406) Response: {

Так что я должен делать, если Я хочу вернуть массив из веб-службы REST?

+3

Почему вы используете так много вопросительных знаков ?????????????? – Doorknob

+0

Вы хотите вернуть массив, представленный как XML? Это может помочь: http://java.dzone.com/articles/xml-bindings-jaxb-and-jax-rs – OakNinja

+0

Не совсем я хочу вернуться как обычный текст Я внес изменения в исходное сообщение. – CSSG

ответ

2

HTTP-ответы не поддерживают массивы в текстовых ответах. Вы либо должны вручную представить ваш массив в виде строки, изменить тип возвращаемого значения строки и возврата, как это:

return Arrays.toString(arr); 

Или вы могли бы преобразовать массив в список: возвращение Arrays.asList (обр);

и использовать подход, чтобы вернуть его как JSON или XML здесь: Jersey: Return a list of strings

+0

Эй, твой первый трюк работает. Может быть, пожалуйста, объясните это утверждение некоторым примером «закодируйте свой ответ как массив JSON и верните его как строку». Как это сделать, я понятия не имею? – CSSG

+0

@CSSG Я отредактировал свой ответ на ссылку на другой пост с более подробной информацией. Это полезно, однако, если вы хотите, чтобы ваш ответ был как JSON или XML вместо обычного текста. – Alb

Смежные вопросы