java.net.SocketException:无法识别的Windows套接字错误:0:JVM_Bind(JBOSS)

我在Windows 7上使用JBoss 4.0.5 GA和Java 1.5版(我必须使用旧的Java版本和JBoss,因为我正在使用遗留系统)。 当我启动服务器时,我收到以下错误:

java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind 

我相信这会导致许多其他例外情况:

 11:09:26,925 WARN [ServiceController] Problem starting servicejboss.cache:service=TomcatClustering Cache java.lang.NullPointerException at org.jgroups.protocols.FD_SOCK.down(FD_SOCK.java:235) at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467) at org.jgroups.stack.Protocol.passDown(Protocol.java:510) at org.jgroups.protocols.FD.down(FD.java:278) at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467) at org.jgroups.stack.Protocol.passDown(Protocol.java:510) at org.jgroups.stack.Protocol.down(Protocol.java:540) at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467) at org.jgroups.stack.Protocol.passDown(Protocol.java:510) at org.jgroups.protocols.pbcast.NAKACK.down(NAKACK.java:297) at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467) at org.jgroups.stack.Protocol.passDown(Protocol.java:510) at org.jgroups.protocols.UNICAST.down(UNICAST.java:262) at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467) at org.jgroups.stack.Protocol.passDown(Protocol.java:510) at org.jgroups.protocols.pbcast.STABLE.down(STABLE.java:292) at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467) at org.jgroups.stack.Protocol.passDown(Protocol.java:510) at org.jgroups.protocols.pbcast.GMS.down(GMS.java:605) at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467) at org.jgroups.stack.Protocol.passDown(Protocol.java:510) at org.jgroups.protocols.FC.down(FC.java:122) at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467) at org.jgroups.stack.Protocol.passDown(Protocol.java:510) at org.jgroups.protocols.FRAG2.down(FRAG2.java:146) at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467) at org.jgroups.stack.Protocol.passDown(Protocol.java:510) at org.jgroups.protocols.pbcast.STATE_TRANSFER.down(STATE_TRANSFER.java:217) at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467) at org.jgroups.stack.ProtocolStack.down(ProtocolStack.java:331) at org.jgroups.JChannel.down(JChannel.java:1035) at org.jgroups.JChannel.connect(JChannel.java:374) at org.jboss.cache.TreeCache.startService(TreeCache.java:1424) at org.jboss.cache.aop.PojoCache.startService(PojoCache.java:94) at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289) at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245) at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978) at $Proxy0.start(Unknown Source) at org.jboss.system.ServiceController.start(ServiceController.java:417) at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) at $Proxy4.start(Unknown Source) at org.jboss.deployment.SARDeployer.start(SARDeployer.java:302) at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025) at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819) at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133) at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142) at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) at $Proxy8.deploy(Unknown Source) at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421) at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634) at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263) at org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(AbstractDeploymentScanner.java:336) at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289) at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245) at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978) at $Proxy0.start(Unknown Source) at org.jboss.system.ServiceController.start(ServiceController.java:417) at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) at $Proxy4.start(Unknown Source) at org.jboss.deployment.SARDeployer.start(SARDeployer.java:302) at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025) at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819) at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782) at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:766) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133) at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142) at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) at $Proxy5.deploy(Unknown Source) at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:482) at org.jboss.system.server.ServerImpl.start(ServerImpl.java:362) at org.jboss.Main.boot(Main.java:200) at org.jboss.Main$1.run(Main.java:490) at java.lang.Thread.run(Thread.java:619) 

如果有人能提供帮助,我非常感谢。 至少要弄清楚我应该在哪里寻找解决方案(例如,这是一个与Windows 7和JBoss群集不兼容的错误吗?这是因为错误的端口配置?等等)

谢谢。

在某些安装了IPv6 TCP堆栈的Windows系统上会出现此问题。 如果计算机上同时安装了IPv4和IPv6,则Java虚拟机(JVM)可能无法在操作系统级别关闭或打开套接字。

添加以下JVM选项: -Djava.net.preferIPv4Stack=true

我已经看到这种情况发生在默认安装了IPv4和IPv6堆栈的Windows 7和Windows 2008系统上。

你很可能已经绑定了JBoss正在使用的端口上的另一个进程(8080?),这会阻止JBoss正确启动(请参阅此页面获取JBoss使用的端口列表)。

找到冲突的进程并关闭它:

  • 使用netstat -a -o -n并查找JBoss使用的端口(例如8080)和相应的pid
  • 然后使用tasklist /FI "PID eq "查找进程

或者更改JBoss默认端口。 有几种方法可以做到这一点,但最好的方法是使用服务绑定管理器 (请参阅在一台机器上配置多个JBoss实例中的详细说明)。

我在Win7上遇到了同样的问题,试图在这里实现这个例子: http : //download.oracle.com/javase/tutorial/networking/sockets/clientServer.html

示例代码中的默认端口是4444.使用此端口我收到“无法识别的Windows套接字错误:0:JVM_Bind”

我将端口更改为44444并再次尝试。 我从Windows防火墙服务获得一个弹出窗口,询问我该应用程序是否有权访问网络。 选择确定我启动服务器时不再收到错误消息。

经过一些实验,我发现使用5000或更少的端口,我会得到JVM_Bind错误。 任何5001或以上的端口都会绑定没有问题。

我有类似的问题。 我使用了process-xp并杀死javaw.exe ,然后重启应用程序。 这个对我有用。

这是JAVA 32/64位的问题。 尝试用32位JVM运行你的jar

我的Tomcat遇到了这个问题,它变成了与Skype的端口冲突。 在我的Skype->选项 – >高级 – >连接中,我取消选中以下“使用端口80和443作为传入连接的替代选项”。 这完全解决了这个问题。

这解决了我的问题:)添加以下JVM选项:-Djava.net.preferIPv4Stack = true

我知道这是一个老问题,但我刚刚找到了问题的一个原因,以及解决方案。 我的服务器套接字程序工作正常,直到我把代码放入循环,然后我得到错误Unrecognized Windows Sockets error: 0: JVM_Bind在第一次尝试后每次尝试accept() 。 我有这样的代码:

 ServerSocket ssock = null; Socket sock = null; while (loopCount < loopLimit) { ssock = new ServerSocket(port); ssock.setSOLimit(millis); sock = ssock.accept(); // some code here... loopCount++; } 

只有当我把ssock = new ServerSocket(port)ssock.setSOLimit(millis); 在我消除错误的循环之上。

我在Windows 10上遇到了与Tomcat相同的问题。将其添加到顶部附近的catalina.bat文件中:

 SET JAVA_OPTS=-Djava.net.preferIPv4Stack=true 

打开命令提示符作为管理员 然后执行netsh winsock重置