为 JAX-RS 2.0 客户端配置代理 API
Configuring proxy for JAX-RS 2.0 client API
我有一个 运行 在 Java EE 7 应用程序服务器 (WildFly) 上的应用程序,它使用 REST 资源查询另一个服务。
在以前的应用程序中,我使用了 Jersey 1.x 客户端 API。通过 Web 代理授予对 REST 服务的访问权限。
在泽西岛,我创建了这样的 Client
实例:
public Client create() {
Client client;
if ( proxyConfiguration != null && proxyConfiguration.getHost() != null && !proxyConfiguration.getHost().trim().isEmpty() ) {
HttpURLConnectionFactory urlConnectionFactory = new ProxyUrlConnectionFactory( proxyConfiguration );
client = new Client( new URLConnectionClientHandler( urlConnectionFactory ), clientConfig );
} else {
client = Client.create( clientConfig );
}
return client;
}
运行 在 Java EE 7 应用程序服务器上 我想使用应用程序服务器提供的 JAX-RS 2.0 客户端 API。
现在我很难找到有关如何以独立于平台的方式配置 JAX-RS 2.0 客户端的信息。设置 http.proxyHost
和 http.proxyPort
系统属性对 WildFly 没有影响(无论如何我宁愿不要全局配置它)。
有人知道怎么解决吗?
我认为没有独立于供应商的解决方案(至少,我没有在 JAX-RS API 中找到任何与代理相关的内容)。
对于球衣 2.x,您可以尝试:
ClientConfig config = new ClientConfig();
config.property(ClientProperties.PROXY_URI, "192.168.1.254:8080");
Client client = ClientBuilder.withConfig(config).build();
ClientProperties
是来自泽西 API.
的 class
对于 RESTEasy,配置为:
Client client = new ResteasyClientBuilder()
.defaultProxy("192.168.1.254", 8080, "http")
.build();
ResteasyClientBuilder
是来自 RESTEasy API.
的 class
我有一个 运行 在 Java EE 7 应用程序服务器 (WildFly) 上的应用程序,它使用 REST 资源查询另一个服务。
在以前的应用程序中,我使用了 Jersey 1.x 客户端 API。通过 Web 代理授予对 REST 服务的访问权限。
在泽西岛,我创建了这样的 Client
实例:
public Client create() {
Client client;
if ( proxyConfiguration != null && proxyConfiguration.getHost() != null && !proxyConfiguration.getHost().trim().isEmpty() ) {
HttpURLConnectionFactory urlConnectionFactory = new ProxyUrlConnectionFactory( proxyConfiguration );
client = new Client( new URLConnectionClientHandler( urlConnectionFactory ), clientConfig );
} else {
client = Client.create( clientConfig );
}
return client;
}
运行 在 Java EE 7 应用程序服务器上 我想使用应用程序服务器提供的 JAX-RS 2.0 客户端 API。
现在我很难找到有关如何以独立于平台的方式配置 JAX-RS 2.0 客户端的信息。设置 http.proxyHost
和 http.proxyPort
系统属性对 WildFly 没有影响(无论如何我宁愿不要全局配置它)。
有人知道怎么解决吗?
我认为没有独立于供应商的解决方案(至少,我没有在 JAX-RS API 中找到任何与代理相关的内容)。
对于球衣 2.x,您可以尝试:
ClientConfig config = new ClientConfig();
config.property(ClientProperties.PROXY_URI, "192.168.1.254:8080");
Client client = ClientBuilder.withConfig(config).build();
ClientProperties
是来自泽西 API.
对于 RESTEasy,配置为:
Client client = new ResteasyClientBuilder()
.defaultProxy("192.168.1.254", 8080, "http")
.build();
ResteasyClientBuilder
是来自 RESTEasy API.