Exception in thread “main” javax.ws.rs.

我有一个用于调用 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{

@Override

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;

    }

}

添加接口时问题出在哪里?是否禁止在创建 Web 服务 rest 时添加接口?或者是否应该向 Web .xml文件添加一些说明?并提前感谢您


德玛西亚99
浏览 101回答 1
1回答

慕莱坞森

在&nbsp;JSR-339(用于 RESTful Web 服务的 Java API 2.0)中,您可以在&nbsp;3.6 节注释继承的开头直接阅读:JAX-RS 注释可用于超类或已实现接口的方法和方法参数。因此,可以使用注释,但只能在方法和方法参数中使用,而不是在接口本身中使用,这很可能是因为他们将尝试创建用它注释的类型实例。因此,您情况下的问题似乎是以下注释:@Path("/aqsensor") @Produces(MediaType.TEXT_PLAIN)这应该保留在特定的类中,而不是接口中。同一部分中的规范末尾还指出:为了与其他 Java EE 规范保持一致,建议始终重复注记,而不是依赖于注解继承。因此,使用注释继承需要您自担风险。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java