一同事在win7下使用无线网,启动tomcat后,与数据库连接时报如下错误:(tomcat 1.6,sqlserver 2008 r2, jdk 1.6)
严重: Socket accept failed java.net.SocketException: select failed 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:352) at java.lang.Thread.run(Thread.java:619) 2011-8-31 15:36:59 org.apache.tomcat.util.net.JIoEndpoint$Acceptor run
在网上搜了一下,说是与ipv6 有冲突建议把ipv6 卸掉,觉得这种方法欠妥. 又搜了一下,说是设定tomcat参数,奏效记录下:
在tomcat bin 目录下找到 catalina.bat 文件,用文本编辑器打开,找到这一行:
set JAVA_OPTS=
在其后添加: (注意各参数用空格隔开)
-Djava.net.preferIPv4Stack=true
再启动后,OK
以上步骤简单来说: 就是让jvm使用 ipv4,不使用ipv6 . 总之,还是与ipv6冲突,不知是否是版本问题.