首页 > 解决方案 > NoSuchMethodException:找不到合适的构造函数

问题描述

我使用 JAX-RS 注释创建了简单的 REST 端点 API 接口:

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 类中找不到合适的构造函数。

当我在非接口类中“合并”两个类时,有趣的是一切正常。为什么?

标签: javawebservicejax-rs

解决方案


我认为,问题在于 REST-Annotations 在接口中。服务器尝试实例化接口,这是不可能的。如果您将注释移动到实现类,一切都应该工作。


推荐阅读