2012-08-24 4 views
1

내 스레드입니다 잠겨지고 : 잠겨있는 것으로 보인다스레드가 "www.protocol.http.HttpURLConnection"에 잠겨지고

sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1195) 
    - locked <0x00000007056a2498> (a sun.net.www.protocol.http.HttpURLConnection) 
    at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379) 

힙 자세한 말 결국

"JakartaHttpHandler-http-timeout-pool-12-thread-1" daemon prio=10 tid=0x0000000046bb6800 nid=0x162 waiting on condition [0x00000000431b7000] 
    java.lang.Thread.State: WAITING (parking) 
    at sun.misc.Unsafe.park(Native Method) 
    - parking to wait for <0x00000007521c68b8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) 

,

compacting perm gen total 41408K, used 41295K [0x00000007fae00000, 0x00000007fd670000, 0x0000000800000000) 
    the space 41408K, 99% used [0x00000007fae00000, 0x00000007fd653e58, 0x00000007fd654000, 0x00000007fd670000) 

스레드는 예외를 발생시키지 않고 진행하지 않습니다.

우선, -XX:MaxPermSize을 변경할 계획입니다. 내가 할 수있는 다른 일이 있습니까?

나는이 예외에 직면했을 것이라고 확신한다.

미리 감사드립니다.

답변

0

스택 추적에서 조금 위로 이동하십시오. 아마도 SpringFramework.org와 같은 외부 웹 사이트에 아마도 XSD를 얻기위한 연결이 열려있을 것입니다.

해당 웹 사이트가 무엇인지 확인하고 wget을 사용하여 응용 프로그램이 배포 된 해당 컴퓨터에서 액세스 할 수 있는지 확인하십시오.

+1

이 경우 시간 초과하지 않아야합니까? 스레드가 막 달라 붙어 있습니다. – instanceOfObject

0

실제로 "connect()"전화가 더 내려와있을 가능성이 있습니까?

당신이 찾고있는 코드는 아마 가까운

:이 연결 개체를 만들려면 10 초로 설정됩니다

HttpURLConnection connection = new URL(url).openConnection(); 
    connection.setConnectTimeout(10000); 
    connection.setReadTimeout(10000); 
    connection.connect(); 

연결 시간 (원격 호스트로의 연결을 만들려고 노력)하고, 10 초 읽기 시간 초과 (응답을 기다리는 데 걸리는 시간). 매우 느린 네트워크를 사용하는 경우 첫 번째는 더 높을 필요가 있습니다. 일부 자원에 대한 장기간의 작업으로 인해 서비스 응답 시간이 오래 걸리는 경우 두 번째 서비스가 필요합니다. 어쨌든 기본값은 무한대이며 이는 모든 프로덕션 시스템에 좋은 생각이 아닙니다.