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

Rest 类级别上具有空值的Jersey注释@Path不起作用,rest,jersey,Rest,Jersey,我通过在类级别添加@Path(“/”)声明了一个rest服务,然后在方法级别声明了另一个@Path(“cars”)。除非类级别上的@Path()不是空的,否则它似乎找不到服务方法。 你知道为什么这不会发生吗 如果代码如下所示 @Path("/cars") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public interface CarService { @POST v

我通过在类级别添加@Path(“/”)声明了一个rest服务,然后在方法级别声明了另一个@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.必须根据操作使用适当的方法,如get、post或put,否则将抛出405错误

2.必须为所有路径指定唯一路径,否则会发生冲突。最好使用方法名作为路径名

3.您应该适当地声明生产和消费类型


祝你好运,代码编写得很好。

你犯了什么错误,或者在上面发布你的代码,以便你能有所了解。它抛出一个404 Not found Exception问题,请发布你的代码。因为其余的都是基于模式的表示。图案由(“/”)符号表示。将类级目录设置为(“/”)是不好的。它起作用了。该问题是由于类和方法之间的路径冲突造成的。