Java @DefaultValue与RESTful框架中的@PathParameter不兼容

Java @DefaultValue与RESTful框架中的@PathParameter不兼容,java,rest,Java,Rest,我需要一个@PathParameter的默认值 这就是我的代码的样子: @GET @Path("/family/{member}") public Response responseMsg( @DefaultValue("Father") @PathParam("member") String pathParameter) {} 编译器不会显示任何错误,当然应用程序也不会像我预期的那样运行 因为uri“/family/null”将不匹配路径“/family/{memb

我需要一个
@PathParameter
的默认值

这就是我的代码的样子:

    @GET
    @Path("/family/{member}")
    public Response responseMsg( @DefaultValue("Father") @PathParam("member")  String pathParameter) {}
编译器不会显示任何错误,当然应用程序也不会像我预期的那样运行

因为uri“/family/
null
”将不匹配路径“
/family/{member}
”而是“
/family/

我可以知道是否有任何方法为
@PathParam
指定默认值,以及如何指定吗?
另外,我想知道
@DefaultValue
是否仅与
@QueryParameter
兼容?

我认为这里的最佳实践是将使用
@Path(“/family/”)注释的方法重定向到使用所需默认值显示的方法:

@GET
@Path("/family")
public Response redirectingMethod() {
    return responseMsg("Father");
}

根据定义,URI应该是唯一的——默认值将与此范例相矛盾,因为在省略URI的某些部分并用隐式默认值替换它们时,您无法清楚地说出哪些资源回答了哪个URI。感谢Smutje指出,根据定义,URI应该是,Unique但是java doc for jax rs还提到:它可以定义使用以下注释之一绑定的请求元数据的默认值:PathParam、QueryParam、MatrixParam、CookieParam、FormParam或HeaderParam。如果请求中不存在相应的元数据,则使用默认值。看,Javadoc就是这样的。请参阅,但JAX-RS 1.1规范(来自JCP附录A)是正确的:“DefaultValue:为使用QueryParam、MatrixParam、CookieParam、FormParam或HeaderParam注释的字段、属性或方法参数指定默认值。如果相应的查询或矩阵参数不在请求URI中,如果相应的表单参数不在请求实体体中,或者如果相应的HTTP头不包括在请求中,则将使用指定的值。但是,路径(“/family”)也用于指向其他资源,让我们说一下全家人名单。好的。因此,如果不更改应用程序中的URL方案,就我所知,您的问题没有解决方案