杯具啊,为什么会有java.net.SocketException: Connection reset这个异常

董小尾 2009-08-06 04:47:48
run-main:
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:687)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:652)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1064)
at com.sun.syndication.io.XmlReader.<init>(XmlReader.java:237)
at com.rss.parseRss(rss.java:29)
at com.rss.main(rss.java:75)


有说是阻塞引起的可是,怎么解决呢? 求。。。高手解答!!!!
...全文
5745 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zkq_java 2012-03-28
  • 打赏
  • 举报
回复
网上的是这样说的:
java异常:
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at weblogic.servlet.internal.PostInputStream.read(PostInputStream.java:170)
at weblogic.servlet.internal.ServletInputStreamImpl$1.read(ServletInputStreamImpl.java:115)
at weblogic.servlet.internal.ServletInputStreamImpl.read(ServletInputStreamImpl.java:180)
at weblogic.servlet.internal.ServletRequestImpl.mergePostParams(ServletRequestImpl.java:1257)
at weblogic.servlet.internal.ServletRequestImpl.parseQueryParams(ServletRequestImpl.java:1124)
at weblogic.servlet.internal.ServletRequestImpl.getParameter(ServletRequestImpl.java:1335)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:383)
.........

在网上找了些说法:

a。maybe:
1,网络编程时未正确捕获java.net.SocketException,客户端先关闭就会报这个异常;
2,数据库和应用服务器的网段不同.

b。好像说防火墙的比较多。。。。
大部分是网络的原因。提交post的东西多,然后服务器接收就超时了。。。

c。如果weblogic server和数据库服务器不在同一台主机,会经常有这种情况,我也遇到过,不过好像的确不怎么影响使用


d。从根本上说是weblogic sp2的bug

e。一般是有些客户端已关闭,一些线程因为延迟等原因觉察不到此连接已结束,继续等到到出错或是 客户端那里不停刷或一个访问/刷新没完成前再刷,要让这个无用的线程死掉和这个错误如果不影响应用运行的话大可不必理会。有一种抛出这个异常的情况是:
浏览器请求了一个服务器端资源,在响应回来之前转而请求其他的资源。这个时候最初的浏览器跟服务器的连接中断,服务器的peer程序就会reset那个connection。
Ajax0816 2011-12-07
  • 打赏
  • 举报
回复
待解决
华海未寒 2011-11-15
  • 打赏
  • 举报
回复
我最近在做一个网络爬虫的功能, 用的httpclient , 也会报链接重置的异常,网上查了N久 ,没有解决问题,有的说是恢复策略设置一下,但没有效果。。。求解啊!
vi_goos 2011-10-31
  • 打赏
  • 举报
回复
我的代码也出现的链接重置的问题,也是时好时坏。我觉得和网络有关系,有时候访问页面的时候会出现反映过慢的问题,从而导致链接超时。我今天早上重新运行了一遍程序,到运行结束都没有出异常。个人感觉还是和网络有很大关系。
WoodLikeWater 2010-07-28
  • 打赏
  • 举报
回复
这就搞笑了,我机子没装杀软啊,防火墙关了。。 也不知道神情况。。
董小尾 2009-08-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xu2481469 的回复:]
老兄,怎么解决的?我也碰到了,帮忙告诉一下
[/Quote]我的是杀软的问题! 一般可能和防火墙有关!
董小尾 2009-08-07
  • 打赏
  • 举报
回复
现在 问题是,每次运行这个的时候,时好时坏,有时候能正常输出,但有时候却又抛出异常!!!

真的很奇怪的现象!

我在try里加了一句 reader.close();貌似没什么效果。。。。

真的很想知道原因啊。。。。

等待高手!!!
xu2481469 2009-08-07
  • 打赏
  • 举报
回复
老兄,怎么解决的?我也碰到了,帮忙告诉一下
董小尾 2009-08-07
  • 打赏
  • 举报
回复
谢谢 大家! 问题现在已解决!!!
IniY0_0 2009-08-06
  • 打赏
  • 举报
回复
网上查了很多,没有查到终极解决方案,关注
light_ggtu 2009-08-06
  • 打赏
  • 举报
回复
关注,帮忙顶一下
董小尾 2009-08-06
  • 打赏
  • 举报
回复
今天下午有试了N次,也换了好几个rss源, 突然发现时好时坏。。。。时不时的能正常显示,很不稳定!!!!!!

急切的想知道原因。。。。
doney_dongxiang 2009-08-06
  • 打赏
  • 举报
回复
我感觉不是 阻塞引起的,我的程序 以前经常出现这个问题,没出现一次 我就重新导入一次包,就可以了
董小尾 2009-08-06
  • 打赏
  • 举报
回复
源代码:
这个是解析rss 源!!!!

import com.sun.syndication.feed.synd.SyndCategory;
import com.sun.syndication.feed.synd.SyndContent;
import com.sun.syndication.feed.synd.SyndEnclosure;
import com.sun.syndication.feed.synd.SyndEntry;
import com.sun.syndication.feed.synd.SyndFeed;
import com.sun.syndication.io.SyndFeedInput;
import com.sun.syndication.io.XmlReader;
import java.net.Socket;

public class rss {

public void parseRss() {

try {
String url = "http://www.natesc.com.cn/data/rss/29.xml";
// 读取Rss源
java.net.URLConnection feedUrl = new java.net.URL(url).openConnection();
XmlReader reader = new XmlReader(feedUrl);

// System.out.println("Rss源的编码格式为:" + reader.getEncoding());
SyndFeedInput input = new SyndFeedInput();
// 得到SyndFeed对象,即得到Rss源里的所有信息
SyndFeed feed = input.build(reader);
// 得到Rss新闻中子项列表
List entries = feed.getEntries();
// 循环得到每个子项信息
for (int i = 0; i < entries.size(); i++) {
SyndEntry entry = (SyndEntry) entries.get(i);
// 标题、连接地址、标题简介、时间是一个Rss源项最基本的组成部分
System.out.println("标题:" + entry.getTitle());
System.out.println("连接地址:" + entry.getLink());
SyndContent description = entry.getDescription();
System.out.println("标题简介:" + description.getValue());
System.out.println("发布时间:" + entry.getPublishedDate());
// 以下是Rss源可先的几个部分
System.out.println("标题的作者:" + entry.getAuthor());
// 此标题所属的范畴
List categoryList = entry.getCategories();
if (categoryList != null) {
for (int m = 0; m < categoryList.size(); m++) {
SyndCategory category = (SyndCategory) categoryList.get(m);
System.out.println("此标题所属的范畴:" + category.getName());
}
}

}





} catch (Exception e) {
e.printStackTrace();
}

}

public static void main(String arg[]) {


rss Rss = new rss();


Rss.parseRss();

}
}

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧