我有一个用于调用 REST 网络服务的 Java 客户端。如果我在 java 类中声明路径。一切都很好,即:就像这样:@Path("/aqsensor")@Produces(MediaType.TEXT_PLAIN)public class CUManagerSensorImp {@GET@Path("/getQuality")public String getQuality() { String quality; double average = getAverage(); if (isBetween(average, 0, 39)) quality = "Bonne qualité de l'air"; else if (isBetween(average, 40, 79)) quality = "Moyenne qualité de l'air"; else quality = "Mauvaise qualité de l'air"; return quality; } private double getAverage() { int v = (int) (Math.random() * 125); return v; } private boolean isBetween(double average, int min, int max) { if (average >= min && average <= max) return true; else return false; }但是如果我在接口中声明路径。像这样(接口代码):@Path("/aqsensor")@Produces(MediaType.TEXT_PLAIN)public interface CUManagerSensor { @GET @Path("/getQuality") String getQuality();这是接口实现:public class CUManagerSensorImp implements CUManagerSensor{@Overridepublic String getQuality() { String quality; double average = getAverage(); if (isBetween(average, 0, 39)) quality = "Bonne qualité de l'air"; else if (isBetween(average, 40, 79)) quality = "Moyenne qualité de l'air"; else quality = "Mauvaise qualité de l'air"; return quality; } private double getAverage() { int v = (int) (Math.random() * 125); return v; } private boolean isBetween(double average, int min, int max) { if (average >= min && average <= max) return true; else return false; }}添加接口时问题出在哪里?是否禁止在创建 Web 服务 rest 时添加接口?或者是否应该向 Web .xml文件添加一些说明?并提前感谢您
1 回答

慕莱坞森
TA贡献1810条经验 获得超4个赞
在 JSR-339(用于 RESTful Web 服务的 Java API 2.0)中,您可以在 3.6 节注释继承的开头直接阅读:
JAX-RS 注释可用于超类或已实现接口的方法和方法参数。
因此,可以使用注释,但只能在方法和方法参数中使用,而不是在接口本身中使用,这很可能是因为他们将尝试创建用它注释的类型实例。
因此,您情况下的问题似乎是以下注释:
@Path("/aqsensor") @Produces(MediaType.TEXT_PLAIN)
这应该保留在特定的类中,而不是接口中。同一部分中的规范末尾还指出:
为了与其他 Java EE 规范保持一致,建议始终重复注记,而不是依赖于注解继承。
因此,使用注释继承需要您自担风险。
添加回答
举报
0/150
提交
取消