Джерси Статус ответа клиента 204 - PullRequest
7 голосов
/ 26 февраля 2012

Я использую Джерси как для обслуживания, так и для клиента.Когда я пытаюсь позвонить в сервис, я получаю эту ошибку:

Exception in thread "main" com.sun.jersey.api.client.UniformInterfaceException: GET http://localhost:8080/Maze/rest/service/overview?countryid=1 returned a response status of 204 No Content
at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:528)
at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:506)
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:674)
at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
at com.sun.jersey.api.client.WebResource$Builder.get(WebResource.java:503)
at com.maze.client.MyClient.overviewTest(MyClient.java:34)
at com.maze.client.MyClient.main(MyClient.java:64)

Я не понимаю, почему.это клиент:

public static void overviewTest(){
    WebResource wbr;
    Client client = Client.create();
    wbr = client.resource("http://localhost:8080/Maze/rest/service/overview");  
    JSONArray result = wbr.queryParam("countryid", "1").accept(MediaType.APPLICATION_JSON).get(JSONArray.class);
    System.out.println(result.toString());
}

Я действительно понятия не имею, в чем может быть проблема.Я знаю еще один вопрос здесь с, казалось бы, идентичным предметом, но это не так.

Пожалуйста, дайте мне знать, если я что-то упустил или вам нужна дополнительная информация.

1 Ответ

8 голосов
/ 26 февраля 2012

204 - это код состояния ответа HTTP, информирующий клиента об отсутствии возвращаемого содержимого.Когда ваш клиент вызывает get (JSONArray.class), он ожидает 200 с данными, отсюда и исключение.Из реализации вашего сервера видно, что переменная массива никогда не создается, поэтому, если бы ваш список не был пустым, он, вероятно, был бы NPE в array.add (), но в этом случае он выглядит так, как будто ваш список может быть пустым, поэтому цикл forне повторяется и метод getOverviewEntities возвращает ноль, следовательно, результат 204.

JSONArray array = new JSONArray(); // should fix the issue :)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...