如何在RESTeasy客户端中设置路径参数
我已经将 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以在此处查看答案 使用 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