に、サーバー上にIOExceptionがスローされますが、私はちょうど以下のようにhttpsClient Postメソッドのコードに取り組んでIOException
に直面していたRegd httpclient.executeMethod(request);実行に対し、私たちのブログを検索しようとした地元の日食
、いくつかのポインタがとても投稿見つけることができませんでした。小さなポインタが役立つかもしれません、詳細な答えは必要ありません。私はコモンズ - HttpClientを3.1.jarと日食にこのコードを実行しています
HttpClient httpclient = new HttpClient();
request = new PostMethod("https://ref.net/auth/token?grant_type=password");
request.setRequestHeader("Authorization", "Basic KolokYrZTo=");
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
NameValuePair[] data = {
new NameValuePair("username", "abc"),
new NameValuePair("password", "123"),
new NameValuePair("grant_type", "password"),
};
request.setRequestBody(data);
httpclient.executeMethod(request);
} catch (IOException e) {
e.printStackTrace();
logger.error("IOException in post()...."+e.getMessage());
}
それは完全に正常に動作が、私は、サーバーへの私のコードを移動して同じコードを実行しようとすると、httpclient.executeMethod(request);
は、IOExceptionがスローされます。驚いたことにe.printStackTrace();
は、e
オブジェクト自体が印刷されませんnull
この例外をキャッチしてこれをデバッグするには、ここで何か間違っています。
私のローカルで私はJava1.8を持っていますが、コンパイラの準拠レベルで実行しています 1.6-サーバー上。私は1.8と1.6の両方の同じエラーを実行しようとしました。
私たちはサーバー上で構成しなければならないかもしれないローカルの証明書に関連していますか、私は証明書を追加しませんでした。 –
あなたが言うように 'e'が本当に'ヌル 'その後、 'e.printStackTrace'を実行するときに' NullPointerException'をスローするので、これが実際に起こっているのか疑問があります。私は、あなたがあなたのログに表示されているものを参照していると仮定します。しかし、そこに 'e.getMessage()'を追加するだけです。これはnullかもしれません。完全な例外をログに記録して(例外の型とスタックトレースも同様に記録されます)、ここに追加してください。 – Lothar
javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIXパスの構築に失敗しました:sun.security.provider.certpath.SunCertPathBuilderException:要求されたターゲットへの有効な証明書パスが見つかりません at sun.security.ssl.Alerts .getSSLException(Alerts.java:192) at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1937) at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302) –