Jersey@路径工作机制



我注意到一些示例中的某个类实现了以下方法

@Path("{id}")
@GET
@Produces(MediaType.APPLICATION_JSON)
public void retrieve(@Suspended final AsyncResponse asyncResponse,
@PathParam("id") final String id) {....}

@Path("/{id}")
@GET
@Produces(SseFeature.SERVER_SENT_EVENTS)
public EventOutput retrieveSSE(@PathParam("id") final String id,@Context final HttpHeaders headers) {...}

似乎两者的路径都是一样的。在这种情况下会发生什么?如果基于来自客户端的"Accept"标头,我的理解是正确的,那么将调用相关方法。

如果没有提到Accept标头,那么这里会发生什么?会调用这两个方法吗?还是像一开始那样只是第一种方法?

如果没有添加Accept Header,jersey如何决定调用哪个方法?

此外,即使指定了标头,这两个函数是否都被调用??函数的职责是响应给定标头是否可用。

I.E如果API调用是使用Accept头作为应用程序/json 进行的

但是,由于第一个方法具有处理其响应的JSON的机制,所以这两个方法都被调用了吗?

如果我问错了问题,一定要纠正我。

如果使用accept头作为application/json进行api调用,则第一个方法将响应,因为它旨在处理json请求。关于你的问题,如果没有提到accept标头,并且资源具有相同的路径,那么如果你的请求是多个资源可能响应的,那么Jersey可能会给出错误。

相关内容

  • 没有找到相关文章

最新更新