java - 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 类中找不到合适的构造函数。
当我在非接口类中“合并”两个类时,有趣的是一切正常。为什么?
解决方案
我认为,问题在于 REST-Annotations 在接口中。服务器尝试实例化接口,这是不可能的。如果您将注释移动到实现类,一切都应该工作。
推荐阅读
- raspberry-pi - 在运动检测事件时在 Motion Eye 上执行 Python 脚本
- fiware - 监控 Orion Context Broker 以创建新的 XACML 规则
- yacc - 如何修复整数超出范围错误:YACC 中的 $3 错误
- php - 如何在 WooCommerce 中提交“下订单”按钮 onclick?
- c - Gradle:任务“:linkMainExecutable”执行失败
- java - java GUI Form open other form onclick button
- javascript - Apollo 客户端本地状态缓存竞争条件?
- visual-studio-2017 - 文件菜单中缺少 Visual Studio 2017 源代码管理
- genesys - Genesys 聊天小部件的安全性
- node.js - Angular 7:未捕获的 ReferenceError:添加包时未定义全局