网站在前台不通了,查看了下日志 发现报了好多一样的错误,如下代码,不知道是程序的问题还是网络的问题,请高手指点迷津!2009-3-7 20:26:10 org.apache.tomcat.util.net.JIoEndpoint$Acceptor run
严重: Socket accept failed
java.net.SocketException: socket closed
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(Unknown Source)
at java.net.ServerSocket.implAccept(Unknown Source)
at java.net.ServerSocket.accept(Unknown Source)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61)
at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:310)
at java.lang.Thread.run(Unknown Source)
2009-3-7 20:26:11 org.apache.tomcat.util.net.JIoEndpoint$Acceptor run
严重: Socket accept failed
java.net.SocketException: socket closed
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(Unknown Source)
at java.net.ServerSocket.implAccept(Unknown Source)
at java.net.ServerSocket.accept(Unknown Source)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61)
at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:310)
at java.lang.Thread.run(Unknown Source)
2009-3-7 20:26:12 org.apache.tomcat.util.net.JIoEndpoint$Acceptor run
严重: Socket accept failed
java.net.SocketException: socket closed
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(Unknown Source)
at java.net.ServerSocket.implAccept(Unknown Source)
at java.net.ServerSocket.accept(Unknown Source)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61)
at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:310)
at java.lang.Thread.run(Unknown Source)

解决方案 »

  1.   

    socket closed 
    客户端先关闭就会报这个异常 
    数据库和应用服务器的网段不同 
    防火墙
      

  2.   

    mousetsun  
    能不能在具体一些,有可能是程序造成的吗?以前没遇到过这样的问题
      

  3.   

    我也遇到这个问题啊,是在myeclipse7里面,貌似把ipv6关了就可以了,不知道你有没有开ipv6
      

  4.   

    严重: Socket accept failed
    java.lang.OutOfMemoryError: Java heap space
    2009-11-03 17:15:22,421 WARN [org.hibernate.util.JDBCExceptionReporter] - SQL Warning: 0, SQLState: 
    2009-11-03 17:15:22,421 WARN [org.hibernate.util.JDBCExceptionReporter] - [Microsoft][SQLServer 2000 Driver for JDBC]Database changed to master
    2009-11-03 17:15:22,421 WARN [org.hibernate.util.JDBCExceptionReporter] - SQL Warning: 0, SQLState: 
    2009-11-03 17:15:22,421 WARN [org.hibernate.util.JDBCExceptionReporter] - [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]已将数据库上下文改为 'master'。
    2009-11-03 17:15:22,484 WARN [org.hibernate.util.JDBCExceptionReporter] - SQL Warning: 0, SQLState: 
    2009-11-03 17:15:22,484 WARN [org.hibernate.util.JDBCExceptionReporter] - [Microsoft][SQLServer 2000 Driver for JDBC]Language changed to 简体中文
    2009-11-03 17:15:22,484 WARN [org.hibernate.util.JDBCExceptionReporter] - SQL Warning: 0, SQLState: 
    2009-11-03 17:15:22,484 WARN [org.hibernate.util.JDBCExceptionReporter] - [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]已将语言设置改为 简体中文。
    2009-11-3 17:15:22 org.apache.catalina.core.StandardWrapperValve invoke
    严重: Servlet.service() for servlet action threw exception
    java.lang.OutOfMemoryError: Java heap space
    和楼主很像吧
      

  5.   

    严重: Socket accept failed
    java.lang.OutOfMemoryError: Java heap space
    at java.net.Socket.setImpl(Socket.java:434)
    at java.net.ServerSocket.implAccept(ServerSocket.java:445)
    at java.net.ServerSocket.accept(ServerSocket.java:421)
    at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61)
    at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:310)
    at java.lang.Thread.run(Thread.java:619)哎。。我也遇到啦
      

  6.   

    我也遇到类似问题了,还没有办法解决,一旦出现,刷log不断,网站也无法使用,只能重启服务。18:33:25,163 ERROR [JIoEndpoint] Socket accept failed
    java.net.SocketException: Too many open files
            at java.net.PlainSocketImpl.socketAccept(Native Method)
            at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
            at java.net.ServerSocket.implAccept(ServerSocket.java:453)
            at java.net.ServerSocket.accept(ServerSocket.java:421)
            at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61)
            at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:309)
            at java.lang.Thread.run(Thread.java:619)
    18:33:25,357 ERROR [JIoEndpoint] Socket accept failed
    java.net.SocketException: Too many open files
            at java.net.PlainSocketImpl.socketAccept(Native Method)
            at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
            at java.net.ServerSocket.implAccept(ServerSocket.java:453)
            at java.net.ServerSocket.accept(ServerSocket.java:421)
            at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61)
            at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:309)
            at java.lang.Thread.run(Thread.java:619)
    18:33:25,383 WARN  [URLDeploymentScanner] Scan URL, caught java.io.IOException: Could not list directory '/opt/jboss-4.2.2.GA/server/default/deploy', reason unknown
    18:33:25,527 ERROR [JIoEndpoint] Socket accept failed
    java.net.SocketException: Too many open files
            at java.net.PlainSocketImpl.socketAccept(Native Method)
            at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
            at java.net.ServerSocket.implAccept(ServerSocket.java:453)
            at java.net.ServerSocket.accept(ServerSocket.java:421)
            at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61)
            at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:309)
            at java.lang.Thread.run(Thread.java:619)
    18:33:25,529 ERROR [JIoEndpoint] Socket accept failed
    java.net.SocketException: Too many open files
            at java.net.PlainSocketImpl.socketAccept(Native Method)
            at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
            at java.net.ServerSocket.implAccept(ServerSocket.java:453)
            at java.net.ServerSocket.accept(ServerSocket.java:421)
            at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61)
            at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:309)
            at java.lang.Thread.run(Thread.java:619)
    18:33:25,612 INFO  [STDOUT] 2010-07-08 18:33:25 ERROR [com.mchange.v2.resourcepool.BasicResourcePool] A RESOURCE POOL IS PERMANENTLY BROKEN! [com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@ab40cb6]
    18:33:25,612 INFO  [STDOUT] 18:33:25,612 ERROR BasicResourcePool:1853 - A RESOURCE POOL IS PERMANENTLY BROKEN! [com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@ab40cb6]
    18:33:25,677 ERROR [JIoEndpoint] Socket accept failed
    java.net.SocketException: Too many open files
            at java.net.PlainSocketImpl.socketAccept(Native Method)
            at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
            at java.net.ServerSocket.implAccept(ServerSocket.java:453)
            at java.net.ServerSocket.accept(ServerSocket.java:421)
            at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61)
            at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:309)
            at java.lang.Thread.run(Thread.java:619)
      

  7.   

    接口打开失败,是不是相应的服务没有开启,再就是你的tomcat配置是否正确,建议你从服务,到配置重新检查一遍
      

  8.   

    出现这种错误,可能跟tcp/ip损坏有关。我也是用迅雷的加速。导致我启动tomcat一直上面提示的错误。
    网上有说把ipv6给卸载掉,但是试过了没用。重装tcp/ip也没用
    解决方法:
     需要为tomcat添加额外的启动参数:-Djava.net.preferIPv4Stack=true
    本人亲测
      

  9.   

    用金山或者360修复下LSP就可以了
      

  10.   


    确实是这样,我就是用了迅雷加速器,之后用360可以看到LSP里有多出来好几个迅雷的,修复了一下,tomcat就起来了。
      

  11.   

    操作系统打开的文件描述符过多造成socket.accept()出错.操作系统一般都有自己打开文件数的限制,而网络描述符与文件描述符都属于文件系统管理的范围之内。所以网络描述符+文件描述符不能大于系统打开文件数的限制。socket.accept()函数会在服务端创建一个网络描述符并且与大于1024小于2的32次幂范围内的任意端口绑定作为tcp连接的一端来维护服务器与客户端的通信。如果服务端开启的网络连接太多就使文件描述符+网络描述符的和大于了系统打开文件数的上限,则使socket.accept()方法报错。
      

  12.   

    楼上正解,我tomcat在出了一个不知情的问题以后,就报了这个错误,同学说让我用myeclipse系统自带版本的,可以用,但是就报了这个错误,然后就是用的21楼的方法。解决问题了。多谢了。
      

  13.   

    我也是因为安装了迅雷加速后,发现tomcat启动报这个错误,按照21楼的说法,修复下就OK了,看来是迅雷加速器修改了TCP/IP的相关设置导致tomcat连接出现问题。