一同事在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冲突,不知是否是版本问题.