使用HttpURLConnection访问URL,TOMCAT卡死

问题描述

Tomcat里这个一个应用:客户端访问我的服务器,我再通过服务器访问别人的服务器。如果在访问别人服务器时很久没响应就会很长时间占用一个线程,而我这边客户端访问量很多,线程同时占用很多时就会把tomcat卡死,tomcat在服务器上看cpu和内存正常,只是访问网站时打不开,是一直连接的状态。设置了超时5S,可是本地测试,当对方服务器出问题时,我这边本地访问一直在连接,好久才报错。谁遇到过这样的问题,怎么解决? 谢谢! 问题补充:有什么办法可以防止tomcat卡死,我现在已经把tomcat的线程调大了,不知道有用没,也把服务器响应时间改为10S了

解决方案

HttpURLConnection是基于HTTP协议的,其底层通过socket通信实现。如果不设置超时(timeout),在网络异常的情况下,可能会导致程序僵死而不继续往下执行。可以通过以下两个语句来设置相应的超时:System.setProperty("sun.net.client.defaultConnectTimeout", 超时毫秒数字符串);System.setProperty("sun.net.client.defaultReadTimeout", 超时毫秒数字符串);其中: sun.net.client.defaultConnectTimeout:连接主机的超时时间(单位:毫秒)sun.net.client.defaultReadTimeout:从主机读取数据的超时时间(单位:毫秒)
解决方案二:
1.可能是DNS得不到.注意有缓存http://download.oracle.com/docs/cd/E17476_01/javase/1.4.2/docs/guide/net/properties.htmlhttp://download.oracle.com/docs/cd/E17409_01/javase/6/docs/technotes/guides/net/properties.html#nct2.JDK1.5+注意setConnectionTimeout和setReadTimeout3.也有可能是对方一直故意不给你结束标记.... ^_^

时间: 2024-12-24 11:40:01

使用HttpURLConnection访问URL,TOMCAT卡死的相关文章

URLConnection想实现不用登陆去访问URL

问题描述 URLConnection想实现不用登陆去访问URL 我访问的这个URL.只能用管理员的权限登陆才能访问,如果用cookie或者session能实现吗?该怎么实现? public BufferedReader send(String content) { try { URLConnection conn = new URL(url).openConnection(); conn.setRequestProperty("Content-Type", contentType);

android访问URL指定的资源

问题描述 android操作系统提供3种网络接口供其使用:1.标准的Java接口(最常用的)2.Apache接口3.android网络接口(是Java标准接口的补充)标准的Java接口主要通过URL来定位资源,访问网络资源的基本步骤如下:1.创建URL2.从URL创建URLConnection/HttpURLConnection对象设置连接参数3..连接服务器4.读写服务器数据例1使用Java.net.URLConnection访问URL指定的网络资源URLurl=newURL("网址"

url-strtus2 注解action 访问URL 配置

问题描述 strtus2 注解action 访问URL 配置 问题: 用strtus注解的形式生成一个action @ParentPackage("struts-default") @Namespace("/welcome") @Results(value={ @Result(name="success",location="/pub/index.html"), @Result(name="fail",lo

rest-怎样将访问URL变成REST风格

问题描述 怎样将访问URL变成REST风格 比如:http://localhost:8080/images/download.do?mediaKey=QKx9X8gW%2FrQL9yWQ8X7kswKI%2Bu5nt5LJqNVEXxERK6WUaqr6SiXsfQ%3D%3D&mediaName=creditLevel.png 解决方案 http://localhost:8080/api/v1.0/do 然后封装参数 解决方案二: 看个人喜欢 拼接字符串吧

j2ee:如何解决访问url中有虚拟目录的问题

问题描述 j2ee:如何解决访问url中有虚拟目录的问题 一个url:http://user.qzone.qq.com/3025000/infocenter?pigt=***,类似qq空间的访问路径中,3025000这个是qq号,而我猜想这个不会是真的项目目录,而是类似虚拟目录来的.那么问题来了,在这个请求链接中,项目中如何解决这个类似虚拟目录的问题?有次方面的大牛解答下,回答的好后面可以追加积分.不明白且有兴趣了解的可以给我留言,谢谢. 解决方案 http://blog.csdn.net/gr

ajax-如何访问url并取出数据?

问题描述 如何访问url并取出数据? 地址是这个:http://192.168.0.21:19842/rt/YearServlet用浏览器访问,返回的数据是这些:[""2015-06-05 16:21:40""2015-06-05 15:30:38""2015-06-05 15:07:26""2015-06-05 14:38:21""2015-06-05 14:38:21""2015-0

utf-8-Java 通过HttpURLConnection获取URL接口的返回数据中含有少数民族语言变成了乱码

问题描述 Java 通过HttpURLConnection获取URL接口的返回数据中含有少数民族语言变成了乱码 5C 各位大神private static String getJson(String url){ // String url = ""http://data1.cnr.cn/minzu_hanyuzhuan/phpencode.php?word=""+para; URL oldUrl; StringBuffer buffer = null; try {

基于HttpClient的HttpUtils(后台访问URL)

原文:http://lxy19791111.iteye.com/blog/341409       最近做在线支付时遇到需要以后台方式访问URL并获取其返回的数据的问题,在网络上g了一把,发现在常用的还是Apache的HttpClient.因为以经常要用到的原故,因此我对其进行了一些简单的封装,在此将代码贴一来,希望对有需要的朋友有所帮助,呵呵...         HttpUtils.java中有两个公共的静态方法,一个是URLPost,另一个是URLGet,一目了然,前者是提供POST方式提

request-jsp如何获取当前访问URL?

问题描述 jsp如何获取当前访问URL? 问题描述:例如:当前路径:127.0.0.1:8080/test/content/content.action 返回到content页面 问题:如何在content.jsp页面如何获取:127.0.0.1:8080/test/content/content.action ? 注:String url=request.getScheme()+"://" + request.getHeader("host") + request