如何在RESTeasy客户端中设置路径参数

发布于 2024-12-21 19:54:28 字数 911 浏览 3 评论 0原文

我已经将 RESTeasy 用于服务器和客户端。客户端与服务器共享服务接口:

public interface Service {
    @Path("/start")
    @GET
    void start();
}

该服务的实现绑定到路径/api,因此start()方法可以在完整路径/api/start上访问。在客户端,代码非常简单:

RegisterBuiltin.register(ResteasyProviderFactory.getInstance());
Service service = ProxyFactory.create(Service.class, "http://server/api");
service.start();

但我希望路径大小写不敏感,因此我用正则表达式伪造路径参数:

public interface Service {
    @Path("/{start:[Ss]tart}")
    @GET
    void start();
}

现在客户端 ProxyFactory 不知道替换路径参数的值 {start}并且不进行任何替换,客户端出现异常您没有提供足够的值来填充路径参数

但是当我尝试使用路径参数作为方法参数时,它起作用了。

public interface Service {
    @Path("/{start:[Ss]tart}")
    @GET
    void start(@PathParam("start") String param);
}

如何在 RESTeasy 客户端中指定假路径参数的值?

谢谢。

I have used RESTeasy for server and client. Client shares service interface with server:

public interface Service {
    @Path("/start")
    @GET
    void start();
}

Implementation of this service is bound to path /api, so method start() is accessible on full path /api/start. On client side is code pretty straightforward:

RegisterBuiltin.register(ResteasyProviderFactory.getInstance());
Service service = ProxyFactory.create(Service.class, "http://server/api");
service.start();

But I want to have path case insensitive, so I fake path parameter with regular expression in it:

public interface Service {
    @Path("/{start:[Ss]tart}")
    @GET
    void start();
}

Now client ProxyFactory doesn't know value for substitution path parameter {start} and doesn't do any substitution and client ends with exception You did not supply enough values to fill path parameters.

But when i try to use path parameter as method argument, it works.

public interface Service {
    @Path("/{start:[Ss]tart}")
    @GET
    void start(@PathParam("start") String param);
}

How can I specify value for fake path parameter in RESTeasy client?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

酷到爆炸 2024-12-28 19:54:28

您可以在此处查看答案 使用 JAX-RS 的不区分大小写的 URL:否这也是该规则的附加 RFC

You can see the answer here Case-insensitive URLs with JAX-RS : No There this also the attached RFC to this rule

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文