2017-11-28 8 views
0

私はApache CXF JAX-RS 3.1.11 WebClientを使用しています。私は自動的にリダイレクトに従うようにしています。Apache CXF JAX-RSでは、AUTO_REDIRECT_ALLOW_REL_URIフラグをオンにする方法は?

これは私のコード(ビット簡体字)である:私は例外を取得、このコードで

final WebClient client = WebClient.create(address); 
final HTTPConduit httpConduit = WebClient.getConfig(client).getHttpConduit(); 
httpConduit.getClient().setAutoRedirect(true); 
return client 
     .path("/api") 
     .accept(MediaType.APPLICATION_JSON) 
     .post(Entity.entity(requestPacket.toString(), MediaType.APPLICATION_JSON), String.class); 

Caused by: java.io.IOException: Relative Redirect detected on Conduit '{http://1.2.3.4:5678}WebClient.http-conduit' on '//1.2.3.4:5678/v1/api' 
at org.apache.cxf.transport.http.HTTPConduit.convertToAbsoluteUrlIfNeeded(HTTPConduit.java:1857) 
at org.apache.cxf.transport.http.HTTPConduit.access$300(HTTPConduit.java:149) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.redirectRetransmit(HTTPConduit.java:1464) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.processRetransmit(HTTPConduit.java:1443) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleRetransmits(HTTPConduit.java:1420) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1554) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1356) 
... 30 more 

、HTTPConduitクラスのソースを見て、私は見ることができますこの修正するために設定するプロパティ:、

private static final String AUTO_REDIRECT_ALLOW_REL_URI = "http.redirect.relative.uri"; 

しかし、私はうまくできませんが、私はCXFを使用してそのプロパティを設定しない方法ですAPI? 上記のコードを変更してこのプロパティを有効にするにはどうすればよいですか? HTTPConduitまたはHTTPClientPolicyにこの設定を有効にするメソッドがないようです。あなたが要求コンテキストでそれを配置する必要があり

答えて

2

WebClient.getConfig(client).getRequestContext().put("http.redirect.relative.uri", "true"); 
関連する問題