kilitli kalması.Bir HttpUrlConnection oluşturur ve BufferedInputStream aracılığıyla okur tomcat altında çalışan bir iş parçacığı vardır
bazı URL'ler için veriler alınırken sonra durduktun. HttpUrlConnection'ın kilitli olduğunu ve BufferedInputStream'in de kilitlendiğini söyleyen işlemin jstack'ını aldım.
"http-8080-1" daemon prio=10 tid=0x08683400 nid=0x79c9 runnable [0x8f618000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
- locked <0x956ef8c0> (a java.io.BufferedInputStream)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:687)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1072)
- locked <0x956ef910> (a sun.net.www.protocol.http.HttpURLConnection)
Burada birileri yardımcı olabilir. Teşekkür
buna bazı xyz url okuyor gibi görünüyor. Wget ile denedim ve yanıtı hızlıca alabiliyordum. Read() bloğunun hangi sebepten kaynaklandığından emin değilim. Bir şey daha, 'java.net.HttpURLConnection' ithal ama yığın iz diğer bazı paketi gösterir. Bir ipucu? – Nayn
Apache'nin HTTP İstemcisini denemenizi öneririm: Sun'ın yerine http://hc.apache.org/httpclient-3.x/. Benim de tecrübem yok ama bazı hızlı aramalar Apache'nin daha iyi olduğunu gösteriyor. – nojo
@Nayn: Yığın izindeki "diğer paket" Sun'ın iç uygulamasıdır. – talonx