在类级别上具有空值的Jersey注释@Path不起作用

时间:2016-01-18 12:09:52

标签: rest jersey

我通过在类级别添加@Path(" /")来声明休息服务,然后在方法级别我声明了另一个@Path(" cars")。除非类级别的@Path()不为空,否则它似乎找不到服务方法。 任何想法为什么会发生这种情况?

如果代码如下所示

@Path("/cars")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public interface CarService {

    @POST
    void create(Car car);

}

它有效。

如果如下所示

@Path("/")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public interface CarService {

    @POST
    @Path("/cars")
    void create(CarDto car);

}

它没有。

1 个答案:

答案 0 :(得分:0)

编写资源代码时应注意的事项很少,

1.你必须根据操作使用get,post或put等适当的方法,否则会抛出405错误。

2.您必须为所有人指定唯一的路径,否则会发生冲突。将方法名称作为路径名称是更好的主意。

3.您应该适当地申报产品和消费类型。

祝你好运,代码很好。