【问题标题】:Jersey REST client request - how to set source ip addressJersey REST 客户端请求 - 如何设置源 IP 地址
【发布时间】:2016-02-27 23:54:36
【问题描述】:

我的系统有许多以太网接口,如 eth0、eth1、eth3 等,为每个接口配置了不同的 IP 地址。

我的应用程序部署在这个系统上,作为 REST 客户端,它将向两个服务器 A 和 B 发出请求。要求是在向服务器 A 发送 REST 请求时,源 IP 地址应该是“eth0”IP 地址,而向服务器 B 发送请求,我应该使用“eth1” ip 地址。

我使用下面的代码发出客户端请求

client = ClientBuilder.newClient();
WebTarget webTarget = client.target(node.getUrl());
webTarget = target.path(path).resolveTemplatesFromEncoded(pathValues);
Builder builder = webTarget.request();
response = builder.post(entity);

我以为我可以在“客户端”中设置源 IP 地址,但找不到任何方法。您能告诉我如何为客户端请求设置此源 IP 地址吗?

【问题讨论】:

  • 您必须以某种方式将自定义 SocketFactory 与 Jersey 一起使用。不是一件容易的事:/

标签: java rest jax-rs jersey-client


【解决方案1】:

如果 eth0、eth1... 位于不同的 IP 域中,操作系统将解决该问题并使用最佳接口。 如果不是http://docs.oracle.com/javase/tutorial/networking/nifs/definition.html 所以你需要在客户端下找到socket,我不知道jersey是否允许访问它。

【讨论】:

    猜你喜欢
    • 2018-08-21
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-17
    • 2020-11-30
    • 1970-01-01
    • 2013-03-31
    相关资源
    最近更新 更多