2011-08-22 112 views
0

我在程序中使用了apache http client lib。我为网络通话设置了连接超时和套接字超时。我的理解是,如果有连接超时,客户端不会到达后端服务器;如果套接字超时,客户端到达后端服务器,但服务器没有响应或非常慢。如何判断异常跟踪堆栈的连接超时和套接字超时?

我记录下面的异常跟踪堆栈。我怎么知道哪个超时(连接或套接字)导致异常?谢谢!

java.net.SocketException: The operation timed out 
at org.apache.harmony.luni.platform.OSNetworkSystem.connectStreamWithTimeoutSocketImpl(NativeMethod) 
at org.apache.harmony.luni.platform.OSNetworkSystem.connectStreamWithTimeoutSocket(OSNetworkSystem.java:130) 
at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:247) 
at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:534) 
at java.net.Socket.connect(Socket.java:1056) 
at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119) 
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:143) 
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:348) 
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 
+1

有更多的堆栈跟踪?因为它通常会指向代码中抛出异常的确切行。另外,从这个堆栈跟踪看来,这是一个连接超时... – mre

回答