我有一个在Java EE 7应用程序服务器(WildFly)上运行的应用程序,它使用REST资源查询另一个服务.
在以前的应用程序中,我使用了Jersey 1.x客户端API.通过Web代理授予对REST服务的访问权限.
在Jersey中,我创建了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;
}
Run Code Online (Sandbox Code Playgroud)
在Java EE 7应用程序服务器上运行我想使用应用程序服务器提供的JAX-RS 2.0客户端API.
现在我很难找到有关如何以独立于平台的方式配置JAX-RS 2.0客户端的信息.设置http.proxyHost和http.proxyPort系统属性在WildFly中没有任何效果(我宁愿不在全局配置它).
有谁知道如何解决这个问题?
我认为没有独立于供应商的解决方案(至少,我没有找到任何与JAX-RS API中的代理相关的内容).
对于Jersey 2.x,您可以尝试:
ClientConfig config = new ClientConfig();
config.property(ClientProperties.PROXY_URI, "192.168.1.254:8080");
Client client = ClientBuilder.withConfig(config).build();
Run Code Online (Sandbox Code Playgroud)
ClientProperties 是Jersey API的一个类.
对于RESTEasy,配置为:
Client client = new ResteasyClientBuilder()
.defaultProxy("192.168.1.254", 8080, "http")
.build();
Run Code Online (Sandbox Code Playgroud)
ResteasyClientBuilder 是一个来自RESTEasy API的类.
| 归档时间: |
|
| 查看次数: |
10948 次 |
| 最近记录: |