rest - JAX-RS @PathParam 以变量参数开头

标签 rest jax-rs

我正在使用 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/

相关文章:

java - 尝试使用 Jersey 创建 REst 服务

java - 如何初始化 JAX-RS HttpHeader

java - Jersey HK2 依赖注入(inject)在更新到 v2.27 后不起作用

json - JAX-RS/Jersey ".get(Integer.class)"和单个 JSON 原语(整数)值?

rest - 无效的 flickr API key

c# - 在 docuSign 中的用户之间传输信封

java - 获取 "MessageBodyWriter not found for media type=application/json"尝试通过 JAX-RS Web 服务发送 JSON 对象

data-binding - InjectionUtils - 参数类没有构造函数

rest - Azure 部署版本

json - 如何在 Azure 数据工厂中使用此 API