0

Jersey Rest クライアントの認証でプロキシ設定を構成しようとしています。最初は、認証を必要としないプロキシで正常に機能する次のコードを使用していました

ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);

ただし、プロキシで認証が​​必要な場合は機能しませんでした。次のコード スニペットを使用して、HttpComponents プロジェクトの HttpClient 4.2.1 で Jersey Apache http クライアントを使用してみました。

final ApacheHttpClientConfig config = new DefaultApacheHttpClientConfig();
Map<String, Object> configProp =  config.getProperties();
final String proxyHost = System.getProperty("http.proxyHost");
final String proxyPort = System.getProperty("http.proxyPort");

if(proxyHost != null && proxyPort != null){
        configProp.put(DefaultApacheHttpClientConfig.PROPERTY_PROXY_URI, "http://" + proxyHost + ":" + proxyPort);

        final String proxyUser = System.getProperty("http.proxyUser");
        final String proxyPassword = System.getProperty("http.proxyPassword");
        if(proxyUser != null && proxyPassword != null){
             ApacheHttpClientState state = config.getState();
             state.setProxyCredentials(AuthScope.ANY_REALM, proxyHost, Integer.parseInt(proxyPort), proxyUser, proxyPassword);

        }
}

config.getState() で「ClassNotFoundException」エラーをスローします。HttpClient の Credentials クラスのパスが変更され、jersey Apache Http Client が Credentials クラスを見つけられないようです。

それで、私の質問は、「ジャージーの最近のバージョンまたは一般的なジャージーでプロキシ認証を処理する別の方法はありますか?私のやり方は間違っていますか?」

ありがとう

4

2 に答える 2

0

-Djvm パラメータとして指定してみてください。

于 2012-09-14T05:50:31.200 に答える
0

Ok Jersey Apache Client ライブラリと HttpComponents HttpClient ライブラリの間に依存関係の問題があるようです。Commons HttpClient ライブラリと Jersey Apache Client ライブラリを使用しましたが、問題なく動作しました。

于 2012-10-15T23:05:54.100 に答える