2

複数のワーカーで Apache HTTP クライアントを使用していますが、ある種の競合状態があるようです (スタックトレースは最後にあります)。スタックトレースをグーグルで調べても(まだ)ヒントが得られないので、私は困惑しています。Linux で Java 1.7.0-b147 64 ビットを使用。

  1. ここで何か間違ったことをしていますか?
  2. の Sun の実装に代わる既知の効率的な方法はありSSLSocketますか?

編集: 役に立たないかもしれませんが、呼び出しコードは次のようになります:

public String call() {
    HttpUriRequest request = new HttpGet(aUrl);
    HttpResponse response = httpClient.execute(request);
    StatusLine statusLine = response.getStatusLine();
    return EntityUtils.toString(response.getEntity());
}

httpClient がすべての callable に共有されます。

スタックトレース:

java.lang.NullPointerException
 at sun.security.ssl.SSLSocketImpl.getEnabledCipherSuites(SSLSocketImpl.java:2320)
 at javax.net.ssl.SSLSocket.getSSLParameters(SSLSocket.java:614)
 at sun.security.ssl.SSLSocketImpl.getSSLParameters(SSLSocketImpl.java:2406)
 at sun.security.ssl.SSLAlgorithmConstraints.<init>(SSLAlgorithmConstraints.java:65)
 at sun.security.ssl.Handshaker.init(Handshaker.java:236)
 at sun.security.ssl.Handshaker.<init>(Handshaker.java:191)
 at sun.security.ssl.ClientHandshaker.<init>(ClientHandshaker.java:104)
 at sun.security.ssl.SSLSocketImpl.initHandshaker(SSLSocketImpl.java:1217)
 at sun.security.ssl.SSLSocketImpl.doneConnect(SSLSocketImpl.java:634)
 at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:608)
 at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:414)
 at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
 at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
 at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:643)
 at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)
 at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
 at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
 at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784) 
4

1 に答える 1

2

これはJDKの問題です。この問題は JDK 1.7.0_u4 の実行時に発生し、JDK 1.7.0_u25 にアップグレードした後に解決されました。

于 2013-11-07T10:48:06.827 に答える