我有一個用于調(diào)用 REST 網(wǎng)絡(luò)服務(wù)的 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();這是接口實現(xiàn):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; }}添加接口時問題出在哪里?是否禁止在創(chuàng)建 Web 服務(wù) rest 時添加接口?或者是否應(yīng)該向 Web .xml文件添加一些說明?并提前感謝您
1 回答

慕萊塢森
TA貢獻1810條經(jīng)驗 獲得超4個贊
在 JSR-339(用于 RESTful Web 服務(wù)的 Java API 2.0)中,您可以在 3.6 節(jié)注釋繼承的開頭直接閱讀:
JAX-RS 注釋可用于超類或已實現(xiàn)接口的方法和方法參數(shù)。
因此,可以使用注釋,但只能在方法和方法參數(shù)中使用,而不是在接口本身中使用,這很可能是因為他們將嘗試創(chuàng)建用它注釋的類型實例。
因此,您情況下的問題似乎是以下注釋:
@Path("/aqsensor") @Produces(MediaType.TEXT_PLAIN)
這應(yīng)該保留在特定的類中,而不是接口中。同一部分中的規(guī)范末尾還指出:
為了與其他 Java EE 規(guī)范保持一致,建議始終重復(fù)注記,而不是依賴于注解繼承。
因此,使用注釋繼承需要您自擔風險。
添加回答
舉報
0/150
提交
取消