org.springframework.http.converter.HttpMessageNotWritableException Не найдено преобразователя для возвращаемого значения типа: класс - PullRequest
0 голосов
/ 05 ноября 2018

Я делаю упражнения с Spring-Boot, я пытался искать, но ничего, что я нашел, не помогло мне. Я пытаюсь вернуть JSON, конвертирующий POJO, который SB должен делать автоматически, но возвращает:

2018-11-05 13: 26: 36.090 ПРЕДУПРЕЖДЕНИЕ 1584 --- [nio-8080-exec-1] .wsmsDefaultHandlerExceptionResolver: Resolved [org.springframework.http.converter.HttpMessageNotWritableException: не найдено преобразователя для возвращаемого значения тип: класс com.example.demo.pelis.Foo]

Вот мой pom.xml:

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.0.RELEASE</version>
    <relativePath /> <!-- lookup parent from repository -->
  </parent>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
      <groupId>com.h2database</groupId>
      <artifactId>h2</artifactId>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

И мой POJO:

public class Foo {

    private String bar;

    /**
     * @return the bar
     */
    public String getBar() {
        return bar;
    }

    /**
     * @param bar
     *            the bar to set
     */
    public void setBar(String bar) {
        this.bar = bar;
    }
}

Контроллер:

@RestController
public class PelisController {
    @GetMapping(value = "/fooPoint")
    public Foo fooPoint() {
        Foo foo = new Foo();
        foo.setBar("smthng");
        return foo;
    }
}

Я не знаю, что я делаю неправильно, потому что я попробовал метод getters / setters, я попытался заменить мой pom в официальном руководстве. Ничего не помогло.

1 Ответ

0 голосов
/ 19 марта 2019

Я только что столкнулся с этой проблемой сегодня и потратил несколько часов, чтобы выяснить, в чем проблема. Почти все ответы, которые я видел, либо из-за отсутствия геттеров и сеттеров, добавляющих зависимость fastxml в pom. У меня уже есть геттеры и сеттеры, и учебник, которому я следовал, не требовал этих изменений.

Решение Мариотепро - это то, что помогло мне справиться с этой проблемой. Его решение скрыто под комментариями, поэтому я решил поместить его здесь в ответ, чтобы люди могли легко увидеть его в случае, если у них один и тот же сценарий.

Так что да, просто повторюсь, зайдя в мой репозиторий maven и удалив папку fastxml и повторно запустив maven, я решил эту проблему.

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