SocketTimeoutException: чтение истекло - PullRequest
1 голос
/ 11 августа 2011

У меня есть веб-приложение, которое читает HTML-страницы с помощью следующей команды

Document doc = Jsoup.connect(url).post();

, тогда мое веб-приложение снова отобразит HTML-страницу с некоторыми изменениями. Оно работает нормально и читает любую HTML-страницу, которую я предоставляю.к этому.Однако некоторые страницы не были приняты моей программой.Таким образом, приложение дало мне следующий тип ошибки Сообщение об исключении

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

org.apache.jasper.JasperException: java.net.SocketTimeoutException: Read timed out
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:404)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


root cause 

java.net.SocketTimeoutException: Read timed out
    java.net.SocketInputStream.socketRead0(Native Method)
    java.net.SocketInputStream.read(SocketInputStream.java:129)
    java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
    java.io.BufferedInputStream.read(BufferedInputStream.java:317)
    sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:687)
    sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
    sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1195)
    java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379)
    org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:381)
    org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:364)
    org.jsoup.helper.HttpConnection.execute(HttpConnection.java:143)
    org.jsoup.helper.HttpConnection.post(HttpConnection.java:138)
    org.apache.jsp.ModelsForAllE_jsp._jspService(ModelsForAllE_jsp.java:105)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

Почему на некоторых страницах он работает нормально, а на некоторых выдает эту ошибку?Это проблема с моим приложением или с Tomcat?

спасибо,

1 Ответ

0 голосов
/ 11 августа 2011

Это может быть просто медленный сайт - поэтому вам нужно увеличить время ожидания.

Или, возможно, это предотвращает атаки типа «отказ в обслуживании».
Какие заголовки вы отправляете с вашим запросом? Вы должны убедиться, что заголовки ваших запросов выглядят как можно ближе к реальному запросу браузера. Например. Вам необходимо отправить тип браузера, тип возврата, который вы принимаете, и т. д. и т. д.

...