我一直在尝试制作一个 Jersey 应用程序,该应用程序从路径中获取以下结构:
示例 1(http:// 由于 stackoverflow 限制而省略)example.com/source/{source-id}/example.com/source/
使用代码(省略错误处理和不需要的代码):
带代码(总结):
@Path("/source/")
public class SourceREST {
...
@GET
public Response getSource() {
return Response.ok("Sources List (no field)").build();
}
@GET
@Path("/{source-id}")
public Response getSource(@PathParam("source-id") String sourceID) {
return Response.ok("Source: " + sourceID).build();
}
}
它工作正常。
示例 2:example.com/data/{source-id}/{info-id}/example.com/data/{source-id}/
使用代码(省略错误处理和不需要的代码):
@Path("/data/")
public class DataREST {
...
@GET
@Path("/{source-id}")
public Response getContext(@PathParam("source-id") String sourceID) {
return Response.ok("Source: " + sourceID + " Last ContextInfo").build();
}
@GET
@Path("/{source-id}/{data-id}")
public Response getContext(@PathParam("source-id") String sourceID,
@PathParam("data-id") String dataID) {
return Response.ok("Source: " + sourceID + " Data: " + dataID).build();
}
}
在示例 2 中,我可以访问类似 example.com/data/111/222/ 的 URL,但尝试获取 hexample.com/data/111/ 时会出现 405 错误代码(不允许使用方法)。我还尝试制作一个完整的方法来检查 {data-id} 是否为空或空白,在这种情况下,像第一种方法一样处理请愿书,但也不起作用。
任何的想法?
谢谢!