NoSuchMethodException: не удалось найти подходящий конструктор - PullRequest
0 голосов
/ 13 июня 2018

Я создал простой интерфейс API конечной точки REST с использованием аннотаций JAX-RS:

package pl.webservice.cards;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("/cards")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public interface CardsServiceApi {

    @GET
    @Path("/message")
    public String getMessage();
}

И его реализация:

package pl.webservice.cards;

public class CardsService implements CardsServiceApi{

    @Override
    public String getMessage() {
        return "Hello World!";
    }
}

После отправки запроса в POSTMAN я получаю следующий ответ:

java.lang.NoSuchMethodException: не удалось найти подходящий конструктор в классе pl.webservice.cards.CardsServiceApi.

Что интересно, когда я «объединяю» оба класса внеинтерфейсный класс все работает отлично.Почему?

1 Ответ

0 голосов
/ 13 июня 2018

Я думаю, проблема в том, что REST-аннотации находятся в интерфейсе.Сервер пытается создать экземпляр интерфейса, что невозможно.Если вы переместите аннотации в класс реализации, все должно работать.

...