2011-11-09 3 views
0

クライアント証明書とサーバー認証の両方を使用して、jetty httpクライアントでssl経由でhttpコールを行うと、次のエラーが発生します。いくつかのhiddingとローカルクローズエラーは、jetty httpクライアントを使用してhttpsコールを送信することを意味しますか?

FAILED: testNucleusOnline 
java.util.concurrent.ExecutionException: Request failed exchange status:9 HTTP:0 
at com.XXX.XXXX.IAbstractOperation.get(IAbstractOperation.java:26) 
at com.XXX.XXXX.IAbstractOperation.get(IAbstractOperation.java:14) 
at com.XXX.XXXX.XXXX.XXXXX.XXXXX(XXXXXX.java:30) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:74) 
at org.testng.internal.Invoker.invokeMethod(Invoker.java:673) 
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:846) 
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1170) 
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125) 
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109) 
at org.testng.TestRunner.runWorkers(TestRunner.java:1147) 
at org.testng.TestRunner.privateRun(TestRunner.java:749) 
at org.testng.TestRunner.run(TestRunner.java:600) 
at org.testng.SuiteRunner.runTest(SuiteRunner.java:317) 
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:312) 
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:274) 
at org.testng.SuiteRunner.run(SuiteRunner.java:223) 
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1039) 
at org.testng.TestNG.runSuitesLocally(TestNG.java:964) 
at org.testng.TestNG.run(TestNG.java:900) 
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:110) 
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:205) 
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:174) 

やコード:完全なエラーを追加するコメントを受けて

java.io.EOFException: local close 
at org.eclipse.jetty.client.HttpConnection.close(HttpConnection.java:651) 
at org.eclipse.jetty.client.HttpConnection.handle(HttpConnection.java:361) 
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:535) 
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40) 
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:529) 
at java.lang.Thread.run(Thread.java:680) 

IAbstractOperation iAbstract = new IAbstractOperation(); 
    iAbstract.setURL(availabilityUrl); 
    iAbstract.setMethod("GET"); 


    if (iAbstract.startsWith("https:")) { 
     iAbstract.setScheme(HttpSchemes.HTTPS_BUFFER); 
    } 

    httpClient.send(iAbstract); 
    return iAbstract; 
+0

接続コードをここに入力すると役立ちます。 – Lycha

答えて

1

基本的には会話が交換の途中でシャットダウンされたことを意味しますSSL。ここでは、コードは次のとおりです。それは、SSLハンドシェイクで行われる前

public void close() throws IOException 
{ 
    //if there is a live, unfinished exchange, set its status to be 
    //excepted and wake up anyone waiting on waitForDone() 

    if (_exchange != null && !_exchange.isDone()) 
    { 
     switch (_exchange.getStatus()) 
     { 
      case HttpExchange.STATUS_CANCELLED: 
      case HttpExchange.STATUS_CANCELLING: 
      case HttpExchange.STATUS_COMPLETED: 
      case HttpExchange.STATUS_EXCEPTED: 
      case HttpExchange.STATUS_EXPIRED: 
       break; 
      default: 
       _exchange.setStatus(HttpExchange.STATUS_EXCEPTED); 
       _exchange.getEventListener().onException(new EOFException("local close")); 
     } 
    } 
    _endp.close(); 
} 

は恐らく接続をシャットダウンすることは、私が解釈するものです。 stacktraceにコードが表示されないので、これが起こっている場所(クライアント側またはサーバー側)について少し混乱します。

関連する問題