62
задан 5 November 2016 в 22:42

8 ответов

Ну, я не мог сделать вышеупомянутую работу веб-проекта. Но я продолжил проводить исследование в области JAX-RS, и я столкнулся с учебным руководством Stormpath. Я думаю, кто бы ни пытается изучить, как REST, JSON и Джерси сотрудничают, должен наблюдать это.

посмотрите ссылки ниже для их презентации и демонстрационного проекта REST на GitHub.

https://www.youtube.com/watch? v=sVvL12BnIyQ

https://github.com/stormpath/todos-jersey

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

6
ответ дан 31 October 2019 в 13:09

Я смог зафиксировать его jersey-media-json-jackson

установки, Добавляет зависимость к pom.xml

<dependency>
  <groupId>org.glassfish.jersey.media</groupId>
  <artifactId>jersey-media-json-jackson</artifactId>
  <scope>runtime</scope>
</dependency>
99
ответ дан 31 October 2019 в 13:09

Необходимо создать пустого конструктора, потому что JAX-RS инициализирует классы... У Вашего конструктора не должно быть аргументов:

@XmlRootElement
public class Student implements Serializable {

    public String first_name;
    public String last_name;

    public String getFirst_name() {
        return first_name;
    }

    public void setFirst_name(String first_name) {
        this.first_name = first_name;
    }

    public String getLast_name() {
        return last_name;
    }

    public void setLast_name(String last_name) {
        this.last_name = last_name;
    }

    public Student()
    {
        first_name = "Fahad";
        last_name = "Mullaji";
    }


 public Student()
    {
    }
}
55
ответ дан 31 October 2019 в 13:09

Я был в той же ситуации, где
- я был не Знаток использования или Муравей,
- я закончил это учебное руководство Vogella на Джерси ,
- и я добирался MessageBodyWriter ошибка при попытке использовать @Produces(MediaType.APPLICATION_JSON).

Этот ответ @peeskillet решает проблему - необходимо использовать Jackson *.jar файлы, которые доступны от страница . FasterXML Jackson Download, в которой Вы будете нуждаться эти core файлы, а также эти jaxrs файлы.

я добавил их к моему WebContent/WEB-INF/lib папка, где я имею своего Джерси *.jar файлы на вышеупомянутое учебное руководство и сделал небольшое изменение файла web.xml ниже (снова, как первоначально совместно использовано @peeskillet):

<param-name>jersey.config.server.provider.packages</param-name>
<param-value>
    your.other.package.here, com.fasterxml.jackson.jaxrs.json 
</param-value>

важная часть, являющаяся com.fasterxml.jackson.jaxrs.json.

17
ответ дан 31 October 2019 в 13:09

Некомментарий ниже кода помог

<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-moxy</artifactId>
</dependency>

, который присутствовал в pom.xml в моем основанном на знатоке проекте, разрешил эту ошибку для меня.

14
ответ дан 31 October 2019 в 13:09

Ниже должен быть в Вашем pom.xml выше других jersy/jackson зависимостей. В моем случае это как ниже jersy-клиентского dep-cy и я получил MessageBodyWriter, не найденный для медиа type=application/json.

<dependency>
  <groupId>org.glassfish.jersey.media</groupId>
  <artifactId>jersey-media-json-jackson</artifactId>
  <version>2.25</version>
</dependency>
10
ответ дан 31 October 2019 в 13:09

Для преодоления этой проблемы пробуют следующее. Работавший для меня.

Добавляют следующую зависимость в pom.xml

<dependency>
  <groupId>org.glassfish.jersey.media</groupId>
  <artifactId>jersey-media-json-jackson</artifactId>
  <version>2.25</version>
</dependency>

И удостоверяются , Образцовый класс содержит никакой конструктор аргумента

 public Student()
    {
    }
2
ответ дан 31 October 2019 в 13:09

Я думаю, можете быть Вы, должен попытаться преобразовать данные в json формат. Это может быть сделано при помощи gson lib. Попробуйте что-то как ниже.

я не знаю, что это - лучшие решения или не, но Вы могли сделать это этот путь. Это работало на меня

пример: '

@GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public Response info(@HeaderParam("Accept") String accept) {
    Info information = new Info();
    information.setInfo("Calc Application Info");
    System.out.println(accept);
    if (!accept.equals(MediaType.APPLICATION_JSON)) {
        return Response.status(Status.ACCEPTED).entity(information).build();
    } else {
        Gson jsonConverter = new GsonBuilder().create();
        return Response.status(Status.ACCEPTED).entity(jsonConverter.toJson(information)).build();
    }
}
1
ответ дан 31 October 2019 в 13:09

Другие вопросы по тегам:

Похожие вопросы: