AIX上运行Jetty碰到A system call received a parameter that is not valid
Jetty在window上、linux上运行都没有问题,在AIX上运行碰到如下异常:
?
java.net.SocketException: A system call received a parameter that is not valid. at sun.nio.ch.Net.localInetAddress(Native Method) at sun.nio.ch.Net.localAddress(Net.java:185) at sun.nio.ch.SocketChannelImpl.localAddress(SocketChannelImpl.java:421) at sun.nio.ch.SocketAdaptor.getLocalAddress(SocketAdaptor.java:179) at java.net.Socket.getLocalSocketAddress(Socket.java:719) at org.eclipse.jetty.io.nio.ChannelEndPoint.<init>(ChannelEndPoint.java:68) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.<init>(SelectChannelEndPoint.java:59) at org.eclipse.jetty.server.nio.SelectChannelConnector.newEndPoint(SelectChannelConnector.java:306) at org.eclipse.jetty.server.nio.SelectChannelConnector$ConnectorSelectorManager.newEndPoint(SelectChannelConnector.java:399) at org.eclipse.jetty.io.nio.SelectorManager$SelectSet.createEndPoint(SelectorManager.java:812) at org.eclipse.jetty.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:425) at org.eclipse.jetty.io.nio.SelectorManager.doSelect(SelectorManager.java:225) at org.eclipse.jetty.server.nio.SelectChannelConnector$1.run(SelectChannelConnector.java:268) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:529) at java.lang.Thread.run(Thread.java:803)
?
网上查找类似问题:
http://www-01.ibm.com/support/docview.wss?uid=swg1PK42970
应该是IBM JDK的一个bug,只能升级JDK版本了
下载地址:http://www.ibm.com/developerworks/java/jdk/aix/service.html
安装过程:http://fxyc.iteye.com/blog/751084
?
APAR status * Closed as program error.Error description * Error Message: java.net.SocketException: A system call received a parameter that is not valid. Stack Trace: java.lang.Error: java.net.SocketException: A system call received a parameter that is not valid. at sun.nio.ch.Net.localAddress(Net.java(Inlined Compiled Code)) at sun.nio.ch.SocketChannelImpl.localAddress(SocketChannelImpl.java (Compiled Code)) at sun.nio.ch.SocketAdaptor.getLocalAddress(SocketAdaptor.java:178) at java.net.Socket.getLocalSocketAddress(Socket.java:660) at com.ibm.ws.tcp.channel.impl.NBAcceptChannelSelector.performReque st(NBAcceptChannelSelector.java:271) at com.ibm.ws.tcp.channel.impl.ChannelSelector.run(ChannelSelector. java:233) at java.lang.Thread.run(Thread.java:570) .Local fix *Problem summary * getLocalSocketAddress, getLocalPort returns invalid argument.Problem conclusion * This defect will be fixed in: 1.4.2 SR9 . As per java API doc getLocalSocketAddress() and getLocalPort() should not throw any exception. If socket is not bound, getLocalPort returns -1 and null for getLocalSocketAddress. . To obtain the fix: Install build 20070613 or later?
?
?
?
?
?
?
1 楼 paul_lmc 2011-06-03 http://www-01.ibm.com/support/docview.wss?uid=swg1PK42970