NoSuchMethodException:找不到合适的构造函数
NoSuchMethodException: Could not find a suitable constructor
我使用 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: Could not find a suitable constructor
in pl.webservice.cards.CardsServiceApi class.
有趣的是,当我 "merge" 两个 class 非接口 class 都工作正常时。为什么?
我认为,问题在于 REST-Annotations 在一个接口中。服务器尝试实例化接口,这是不可能的。如果将注释移动到实现 class,一切都应该有效。
我使用 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: Could not find a suitable constructor in pl.webservice.cards.CardsServiceApi class.
有趣的是,当我 "merge" 两个 class 非接口 class 都工作正常时。为什么?
我认为,问题在于 REST-Annotations 在一个接口中。服务器尝试实例化接口,这是不可能的。如果将注释移动到实现 class,一切都应该有效。