Тип Response.Response Builder не отображается - PullRequest
0 голосов
/ 28 августа 2018

Я пишу службу RESTful в Java, но когда я пытаюсь использовать класс Resource, появляется следующая ошибка: The type Response.Response builder is not visible. Я не понимаю, в чем может быть проблема, так как я уже импортировал необходимые файлы jar и настроил путь к классам. У кого-нибудь есть идеи, что может быть причиной проблемы?

Это метод, который я использую для получения списка событий, и я получаю сообщение об ошибке везде, где используется Response:

@GET 
@Path("/active")
@Produces(MediaType.APPLICATION_JSON)
public Response getActiveEvents() {
    ArrayList<Event> list = EventSetup.getActiveEvents();
    if(list.size() > 0) return Response.status(200).entity(list).build();
    else return Response.status(404).entity("NULL").build();
}

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Я нашел решение этой проблемы. Все файлы jar, включенные в проект, должны находиться в папке WebContent/WEB-INF/lib, иначе Eclipse не увидит их и выдаст ошибку.

0 голосов
/ 28 августа 2018

Код, который вы указали, правильный. Поскольку вы указали JSON в качестве выходного формата, JAX-RS будет сериализовать объект результата (ArrayList<Event>), используя объектный преобразователь, обычно Jackson.

Я предполагаю, что ошибка произошла во время сериализации.

  • используются ли пользовательские или специальные сериализаторы (в конфигурации ObjectMapper или в качестве аннотаций Джексона)? Вполне возможно, что один из этих сериализаторов использует построитель отклика, поэтому они могут быть виноваты.
  • Вы импортировали правильный Response класс (javax.ws.rs.core.Response)? Возможно, вы случайно импортировали класс Response из другого пакета.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...