Как настроить HATEOAS Jax-Rs Link.fromUri - PullRequest
0 голосов
/ 16 июня 2019

Я работаю с JAX-RS и хочу добавить ссылку HATEOAS к ответу. Это проект Maven. Я получаю ошибку, когда делаю запрос к методу GET. Я вижу ошибку в консоли сервера

Зависимости

enter image description here

Инструкция

Link self = Link.fromUri(uriInfo.getBaseUriBuilder()
                    .path(getClass())
                    .path(getClass(), "getBookByIsbn")
                    .build(book.get().getId()))
                    .rel("self")
                    .type("GET")
                    .build();

Когда я делаю запрос, я получаю на консольном сервере ошибку

Caused by: java.lang.NoSuchMethodError: javax.ws.rs.ext.RuntimeDelegate.createLinkBuilder()Ljavax/ws/rs/core/Link$Builder;
    at javax.ws.rs.core.Link.fromUri(Link.java:198)

Книжный класс

package com.readlearncode.dukesbookshop.restserver.domain;


import java.io.Serializable;
import java.util.Date;
import java.util.List;

import com.readlearncode.dukesbookshop.restserver.domain.Author; 

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class Book  extends Hypermedia implements Serializable{

    private String id;
    private String title;
    private String description;
    private List<Author> authors;
    private Float price;
    private String imageFileName;
    private String link;
    private Date published;

    public Book() {

    }
    public Book(String id, String title, String description,List<Author> authors, Float price, String imageFileName, String link,
            Date published) {
        super();
        this.id = id;
        this.title = title;
        this.description = description;
        this.authors = authors;
        this.price = price;
        this.imageFileName = imageFileName;
        this.link = link;
        this.published = published;
    }

Гипермедиа класс

package com.readlearncode.dukesbookshop.restserver.domain;

import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class Hypermedia {

    private List<LinkResource> links = new ArrayList<LinkResource>();


    public void addLink(LinkResource linkResource ) {
        this.links.add(linkResource);
    }

    public List<LinkResource> getLinks() {
        return links;
    }

    public void setLinks(List<LinkResource> links) {
        this.links = links;
    }



}

Как мне настроить ссылку HATEOAS?

...