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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/3947555/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-14 07:22:39  来源:igfitidea点击:

java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind (JBOSS)

javawindows-7jbossjakarta-eejvm

提问by Shamal Karunarathne


I'm using JBoss 4.0.5 GA on Windows 7 with Java version 1.5 (I have to use older java version and a JBoss because I'm working with a legacy system). And when I'm starting the server I get the following error:


我在带有 Java 1.5 版的 Windows 7 上使用 JBoss 4.0.5 GA(我必须使用较旧的 Java 版本和 JBoss,因为我使用的是旧系统)。当我启动服务器时,出现以下错误:

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

And I believe this causes many other exceptions:

我相信这会导致许多其他异常:

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.run(Main.java:490)
    at java.lang.Thread.run(Thread.java:619)  

I greatly appreciate if anyone could help. At least to figure out where I should look for the solution (e.g. Is this an error related to windows 7 and JBoss clustering incompatability? Is this because of a wrong port configuration? etc.)

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

Thanks.

谢谢。

采纳答案by user1269569

This problem occurs on some Windows systems that have the IPv6 TCP Stack installed. If both IPv4 and IPv6 are installed on the computer, the Java Virtual Machine (JVM) may have problems closing or opening sockets at the operating system level.

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

Add the following JVM option: -Djava.net.preferIPv4Stack=true

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

I've seen this happen on Windows 7 and Windows 2008 systems which have both IPv4 and IPv6 stacks installed by default.

我已经在 Windows 7 和 Windows 2008 系统上看到过这种情况,它们默认安装了 IPv4 和 IPv6 堆栈。

回答by Pascal Thivent

You have very likely another process already bound on a port that JBoss is using (8080?) and this prevent JBoss from starting correctly (see this pagefor a list of ports used by JBoss).

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

Either find the conflicting process and shut it down:

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

  • use netstat -a -o -nand look for ports used by JBoss (e.g. 8080) and the corresponding pid
  • then use tasklist /FI "PID eq <pid>"to find the process
  • 使用netstat -a -o -n并查找 JBoss 使用的端口(例如 8080)和相应的pid
  • 然后使用tasklist /FI "PID eq <pid>"查找进程

Or change JBoss defaults ports. There are several ways to do that but the best way is to use the Service Binding Manager(see detailed instructions in Configuring Multiple JBoss Instances On One Machine).

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

回答by Stepanus David Kurniawan

I had similar problem. I used process-xpand kill javaw.exe, then restart the application. It works for me.

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

回答by efelton

I ran into the same issue on Win7 trying to implement the example here: http://download.oracle.com/javase/tutorial/networking/sockets/clientServer.html

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

The default port in the example code is 4444. Using this port I got "Unrecognized Windows Sockets error: 0: JVM_Bind"

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

I changed the port to 44444 and tried again. I got a popup from the Windows Firewall service asking me if this application had permission to access the network. Selecting OK I no longer get the error message when I launch my server.

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

After some experimenting I found that with a port of 5000 or less I would get the JVM_Bind error. Any port of 5001 or above would bind without issue.

经过一些试验,我发现端口为 5000 或更少时,我会收到 JVM_Bind 错误。任何 5001 或更高版本的端口都可以毫无问题地绑定。

回答by JCoop

I know this is an old issue, but I've just recently figured out one cause of the issue, as well as the solution. My server socket program worked fine until I put the code into a loop, then I got the error Unrecognized Windows Sockets error: 0: JVM_Bindon every attempt to accept()after the first attempt. I had code like this:

我知道这是一个老问题,但我最近才发现问题的一个原因以及解决方案。我的服务器套接字程序运行良好,直到我将代码放入循环中,然后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++;
}

It was only when I put ssock = new ServerSocket(port)and ssock.setSOLimit(millis);above the loop that I eliminated the error.

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

回答by Kobi

It's problem of JAVA 32/64 bit. try run your jar with 32 bit JVM

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

回答by Artem Khojoyan

I was having this issue with my Tomcat and it turned to be a port conflict with Skype. In my Skype->Options->Advanced->Connection I unchecked the following "Use port 80 and 443 as alternatives for incoming connections". This solved the problem completely.

我的 Tomcat 遇到了这个问题,结果是与 Skype 的端口冲突。在我的 Skype->选项->高级->连接中,我取消了以下“使用端口 80 和 443 作为传入连接的替代选项”。这样就彻底解决了问题。

回答by niknik123

this solved my problem :) Add the following JVM option: -Djava.net.preferIPv4Stack=true

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

回答by Pijush

open command prompt as administrator. Then do a netsh winsock reset

以管理员身份打开命令提示符。然后进行netsh winsock 重置

回答by mmeiners

I had the same issue with Tomcat on Windows 10. Added this to the catalina.bat file near the top:

我在 Windows 10 上使用 Tomcat 时遇到了同样的问题。将此添加到顶部附近的 catalina.bat 文件中:

SET JAVA_OPTS=-Djava.net.preferIPv4Stack=true