Spring hateoas отображает _links как ссылку - PullRequest
0 голосов
/ 03 сентября 2018

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

По сути, я обновляю проект с очень старой (1.28) версии загрузки Spring до текущей версии 2.04, и кажется, что все работает, за исключением того, что Spring-hateoas неправильно отображает ссылки. Iv'e настроил очень простой метод управления

@RestController
@RequestMapping("/hello")
public class HateoasTestController {

public static class Greeting extends ResourceSupport{
    private final String name;

    public Greeting(String name) {
        this.name = name;
           add(linkTo(ControllerLinkBuilder.methodOn(HateoasTestController.class).greet(name)).withSelfRel());
    }

    public String getName() {
        return name;
    }

}
@RequestMapping(value="/{name}" ,method=RequestMethod.GET)
public Greeting greet(@PathVariable("name")String name){
    return new Greeting(name);
  }
}

Что отображается как

{"name":"peter","link":{"self":[{"href":"http://localhost:6789/hello"}]}}

В старой версии сервиса он будет отображаться как

{"name":"peter","_links":{"self":[{"href":"http://localhost:6789/hello"}]}}

Похоже, по какой-то причине ответ не сериализуется как HAL. Я пытался следить за потоком кода модуля Jackson2Hal, и он срабатывает, но довольно сложно понять, где должно произойти волшебство. Итак, я думаю, мой самый основной вопрос, если есть очевидное место для установки точки останова, чтобы проверить, почему результаты не отображаются должным образом? и, конечно, если есть что-то глупое, я пропустил или смогу предоставить более подробную информацию, которая была бы актуальна. В принципе, любая помощь на данный момент приветствуется

1 Ответ

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

Я идиот. Оказывается, я включил findModulesViaServiceLoader (true) в компоновщике jacksonobjectmapper, что по какой-то причине вызвало его сбой.

...