jboss运行困扰了一个多月的问题:java.io.IOException:Bad file descriptor

teammai 2008-04-23 05:01:33
网站运行一段时间就出现这样的问题:网站就不能访问,但jboss并没有down掉。就算可以访问出来很慢
代码都有log跟踪,但查不到这个错误,只有在jboss log里面才看看。


16:25:08,811 ERROR [[default]] Servlet.service() for servlet default threw exception
java.io.IOException: Bad file descriptor
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:194)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:254)
at java.io.BufferedInputStream.read(BufferedInputStream.java:313)
at java.io.FilterInputStream.read(FilterInputStream.java:90)
at org.apache.catalina.servlets.DefaultServlet.copyRange(DefaultServlet.java:2046)
at org.apache.catalina.servlets.DefaultServlet.copy(DefaultServlet.java:1788)
at org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:854)
at org.apache.catalina.servlets.DefaultServlet.doGet(DefaultServlet.java:325)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Thread.java:595)

希望遇到这个问题的高手们,提供解决方法,万分感谢。
...全文
1457 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangzhenni 2011-11-21
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 cnhawkwing 的回复:]

[Quote=引用 12 楼 machele 的回复:]
for(int i= 'A ';i < 'Z ';i++){
try{
fos.write(i);
……
[/Quote]
把fos.write(i);放到循环外面就解决问题了
zqs262861268 2009-09-10
  • 打赏
  • 举报
回复
你看你是不是哪有未关闭的流
paomadeng 2008-06-17
  • 打赏
  • 举报
回复
应该是Cookie内容过长的问题, 是否Cookie时间过长, 导致内容超过了 8192 (Tomcat Connector里面的配置)
JBossWeek 2008-05-06
  • 打赏
  • 举报
回复
jboss缺省端口可是8080啊,如果要修改端口,直接修改jboss下的server.xml中的端口配置就可以了
cnhawkwing 2008-05-04
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 machele 的回复:]
for(int i='A';i<'Z';i++){
try{
fos.write(i);
fos.close();
}catch(IOException ioe){
ioe.printStackTrace();
}
}


[/Quote]

循环里面不能够把fos.close();
应该把这句放在循环之后。
teammai 2008-05-03
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 machele 的回复:]
Java codeimport java.io.*;
public class Test2{
public static void main(String[] args){
FileOutputStream fos = null ;
try{
fos = new FileOutputStream("F:\\java_ex\\abc.txt");
}catch(FileNotFoundException fnf){
fnf.printStackTrace();
}
for(int i='A';i<'Z';i++){
try{
fos.write(i);

[/Quote]

系new FileOutputStream("F:\\java_ex\\abc.txt")这里加多个参数,好像是ture试试看,

teammai 2008-05-03
  • 打赏
  • 举报
回复
lz的部署架构如何是:jboos4.2.2GA+jdk5_15+oracle9i. apache有装但没有启动. 因为本人对容器(jboss,apache)还没精通,所以很多细节设置还不太熟.
如果是防火墙限制有关系,会保这样的吗?
网站我已经把自已写的写log记录的去掉了,除非袮容器写server.log出错,但这个可能性很少.
machele 2008-04-30
  • 打赏
  • 举报
回复
import java.io.*;
public class Test2{
public static void main(String[] args){
FileOutputStream fos = null ;
try{
fos = new FileOutputStream("F:\\java_ex\\abc.txt");
}catch(FileNotFoundException fnf){
fnf.printStackTrace();
}
for(int i='A';i<'Z';i++){
try{
fos.write(i);
fos.close();
}catch(IOException ioe){
ioe.printStackTrace();
}
}
}
}

类似的错误:
F:\java_ex>javac Test2.java

F:\java_ex>java Test2
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.write(Native Method)
at Test2.main(Test2.java:13)

F:\java_ex>
期待高手解决。。
JBossWeek 2008-04-29
  • 打赏
  • 举报
回复
lz的部署架构如何?是apache + jboss,apache做负载均衡吗?
teammai 2008-04-29
  • 打赏
  • 举报
回复
请问怎样修改linux下的端口,,我想把80端口改为18080,是在etc下的httpd.conf吗?修改了报群错误,不知道怎样改呢?
JBossWeek 2008-04-28
  • 打赏
  • 举报
回复
8080端口没问题,换成80端口就出问题,应该不是JBoss应用服务器的配置问题,建议lz检查一下防火墙等网络设备对80端口的设置,检测80端口在一段时间内的可连接性
teammai 2008-04-28
  • 打赏
  • 举报
回复
怎么csdn都没有高手上了?
勤劳滴小蜜蜂 2008-04-25
  • 打赏
  • 举报
回复
好见过。。顶一下。。。
teammai 2008-04-25
  • 打赏
  • 举报
回复
在外网服务器上,我开18080端口测试一个早上,能点的都点了,都没有报这样的错。改为80端口一会儿就报这样错误了

这说明是什么呢?
teammai 2008-04-25
  • 打赏
  • 举报
回复
没人知道怎样解决吗?
JBossWeek 2008-04-24
  • 打赏
  • 举报
回复
可能是jvm的一个bug,如果用的是jdk5.0请升级到update14及以上版本,如果是jdk6.0,请升级到update4及以上版本
cnhawkwing 2008-04-24
  • 打赏
  • 举报
回复
"回帖是一种美德!传说每天回帖即可获得 10 分可用分!"


传说这个问题比较不容易遇到,遇到也不容易解决,顶起!
teammai 2008-04-24
  • 打赏
  • 举报
回复

这个错误和上面那个是经常同时出现的,,好朋友来的。

那位朋友可以帮助下吖,提供写解决方法,这些问题已经搞了一个多月了,试了很多办法了。

15:06:49,362 ERROR [[default]] Servlet.service() for servlet default threw exception
java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:332)
at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:381)
at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:370)
at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89)
at org.apache.catalina.servlets.DefaultServlet.copyRange(DefaultServlet.java:2048)
at org.apache.catalina.servlets.DefaultServlet.copy(DefaultServlet.java:1788)
at org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:854)
at org.apache.catalina.servlets.DefaultServlet.doGet(DefaultServlet.java:325)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Thread.java:595)
teammai 2008-04-24
  • 打赏
  • 举报
回复
我把jdk5.0升级到jdk5.0_15版本。jboss升级到4.2.2.GA但同样是报这样的错误,为了这个错误,我把代码整理了两遍,都加上自已写的log,但自已写的log都没有找到这个错误。如果是代码出错,至少会指出在那里的代码引出。这些问题只有的jboss的server.log才看到。
请问有什么办法跟踪这些错误吗?
除了这些还会有那些地方引发这样的错误?
项目的包和jboss的包会不会冲突引出这样的错误?如果会?会是那些包呢?

6,787

社区成员

发帖
与我相关
我的任务
社区描述
JBoss技术交流
社区管理员
  • JBoss技术交流社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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