2017-01-12 46 views
2

私はでき成功したODataサービスを、以下の異なるブラウザを使用しても、たとえそうであっても、私はプロキシの背後午前ポストマンを使用して到達: String SERVICE_ROOT =http://services.odata.org/V4/TripPinService/プロキシの背後にApache Olingoの使い方

をしかし、私はJavaでのApache Olingoを使用してこのサービスにアクセスできません。

-Dhttp.proxySet=true -Dhttp.proxyHost=http-proxy.example.com -Dhttp.proxyPort=8080のようなJVMパラメータでは、HTTPステータスコードの取得(google returns 200)などの基本的なURL機能を実行できます。それにもかかわらず、ODataClientを使用してOData-Serviceにアクセスすることはできません(下記のコード)。エラーはスローされません。

ODataClient client = ODataClientFactory.getClient(); 
ODataServiceDocumentRequest request = client.getRetrieveRequestFactory().getServiceDocumentRequest(SERVICE_ROOT); 
ODataRetrieveResponse<ClientServiceDocument> response = request.execute(); 

私はしかし、どんな成功せず、Olingo内のプロキシ機能を使用してみました:私は間違って

client.getConfiguration().setHttpClientFactory(new ProxyWrappingHttpClientFactory(URI.create("http://http-proxy.example.com:8080"))); 

何をやって、何のオプション私は残っているのですか?

ありがとうございました。

答えて

1

NTLMプロキシの背後にいる場合は、NTLMAuthHttpClientFactoryを試すことができます。動作しない場合は

NTLMAuthHttpClientFactory ntlm = new NTLMAuthHttpClientFactory(username, password, workstation, domain); 
client.getConfiguration().setHttpClientFactory(ntlm); 

、あなたはcntlmで試すことができます。インストールし、ユーザー名、パスワード、ドメイン、プロキシをC:\Program Files (x86)\Cntlm\cntlm.iniに変更し、net start cntlmを呼び出します。 Olingoにこれを使用してください:

client.getConfiguration().setHttpClientFactory(new ProxyWrappingHttpClientFactory(URI.create("http://localhost:3128"))); 
+0

入力いただきありがとうございます。私は自分でこの問題を解決しました。それでも私はあなたの答えを受け入れました。私はあなたの意見を本当に感謝しています。ありがとうございました! :) –

+0

ありがとう!私も同様の問題を抱えていましたが、解決策を探しているうちに私はあなたの質問に遭遇しました。上記のアプローチは私の場合の問題を解決しました。 – GeoK

0

私は何とか自分で問題を解決しました。 VMの引数の中で、私は今だけ

-Djava.net.preferIPv4Stack=true 

は、さらに私は、アプリケーション内のプロキシ設定を定義している:

client = ODataClientFactory.getClient(); 
    client.getConfiguration().setHttpClientFactory(
      new ProxyWrappingHttpClientFactory(URI.create("http-prox.example.com:8080"))); 

は、これは私のために働きました。 :)

関連する問題