gpt4 book ai didi

java - JAX-RS:在 ContainerRequestFilter 中检索路径模式

转载 作者:行者123 更新时间:2023-11-30 08:19:01 25 4
gpt4 key购买 nike

我正在实现一个预匹配的 ContainerRequestFilter 并希望检索即将调用的资源的 @Path 模式。

这是我的资源

Path("/v1/partner/{partnerId}/adresse")
public interface AdresseResource
{
@GET
@Produces({ MediaType.APPLICATION_JSON })
public Response handleAdresseCollectionGet(@Context UriInfo uriInfo, @PathParam("partnerId") String partnerId);

// Other methods omitted
}

在我的过滤器中,我想从我的路径注释中获取 /v1/partner/{partnerId}/adresse 模式。但我无法从 ContainerRequestContext 实例中获取它。我希望 UriInfo 中包含此信息,但 encodedPathmatchingPath 是相同的。

你能帮我解决这个问题吗?

enter image description here

最佳答案

From the @PreMatching documentation :

Global binding annotation that can be applied to a container request filter to indicate that such filter should be applied globally on all resources in the application before the actual resource matching occurs.

在调用您的过滤器时,不清楚将匹配哪个资源。您的过滤器可能会更改 requestUri 甚至会影响匹配的方法,因此您无法在此处获取此信息。

在非@PreMatching ContainerRequestFilter 中,您可以通过ContainerRequestContext.getUriInfo().getMatchedURIs() 获得更多信息。或者通过注入(inject) ResourceInfo已经很喜欢answered here .

关于java - JAX-RS:在 ContainerRequestFilter 中检索路径模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27043093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com