gpt4 book ai didi

java - 如何在 Jersey 调用之前获取与 URI 匹配的资源方法?

转载 作者:太空狗 更新时间:2023-10-29 22:32:26 26 4
gpt4 key购买 nike

我正在尝试实现 ContainerRequestFilter对请求的参数进行自定义验证。我需要查找将与 URI 匹配的资源方法,以便我可以从方法的参数中抓取自定义注释。

基于 this answer我应该可以注入(inject) ExtendedUriInfo然后用它来匹配方法:

public final class MyRequestFilter implements ContainerRequestFilter {

@Context private ExtendedUriInfo uriInfo;

@Override
public ContainerRequest filter(ContainerRequest containerRequest) {

System.out.println(uriInfo.getMatchedMethod());

return containerRequest;
}
}

但是getMatchedMethod显然返回 null,一直到实际调用该方法(此时我进行验证为时已晚)。

在调用资源方法之前,如何检索将与给定 URI 匹配的 Method


对于那些感兴趣的人,我正在尝试滚动我自己的必需参数验证,如 JERSEY-351 中所述.

最佳答案

实际上,您应该尝试将 ResourceInfo 注入(inject)到您的自定义请求过滤器中。我已经用 RESTEasy 试过了,它在那里工作。优点是您针对 JSR 接口(interface)而不是 Jersey 实现进行编码。

public class MyFilter implements ContainerRequestFilter
{
@Context
private ResourceInfo resourceInfo;

@Override
public void filter(ContainerRequestContext requestContext)
throws IOException
{
Method theMethod = resourceInfo.getResourceMethod();
return;
}
}

关于java - 如何在 Jersey 调用之前获取与 URI 匹配的资源方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16303694/

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