我正在使用 JAX-RS 1.x 开发一个简单的 RESTFul 服务,例如/{app_id}/job/list/
所以我定义了一个如下的资源类:
@Path("/{app_id}/job")
@Produces(MediaType.APPLICATION_JSON)
public class JobService {
@GET
@Path("list")
public Response list(@PathParam("app_id") final String appId) {
// ....
}
}
但似乎实现(在我的例子中为 RestEasy)无法找到此资源。如果我将其设置为 /job/{app_id}/list
,它可以工作,但不能 /{app_id}/job/list
。
是因为我使用了变量{app_id}
作为起始路径元素吗? JAX-RS 是否期望第一个路径元素被修复?
根资源被定义为/
。
最佳答案
Is it because I have used variable {app_id} as a beginning path element? Does JAX-RS expects first path element to be fixed?
不,模板参数可以位于路径中的任何位置,也可以位于资源(= 类)或子资源(= 方法)上。
如果没有其他 JAX-RS 资源,您的代码就可以工作。检查您的系统是否有可能与您的 URI 路径匹配的其他 @Path
。
关于rest - JAX-RS @PathParam 以变量参数开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19161036/