【问题标题】:java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind (JBOSS)java.net.SocketException:无法识别的 Windows 套接字错误:0:JVM_Bind (JBOSS)
【发布时间】:2011-04-26 05:48:58
【问题描述】:


我在 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 集群不兼容有关的错误吗?这是因为端口配置错误吗?等等)

谢谢。

【问题讨论】:

  • 我必须切换操作系统才能找到快速解决方案。因此,如果有人可以请指出当前答案中是否有解决方案。然后我会将其标记为对社区有益的答案。
  • 我也有同样的错误,但是它自己出现了。 Selenium 以前可以工作,现在无法启动。当然,重新启动 Windows 会解决此问题,但我正在寻找更好的解决方案。重新启动 Eclipse 是不够的。

标签: java windows-7 jboss jakarta-ee jvm


【解决方案1】:

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

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

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

或更改 JBoss 默认端口。有几种方法可以做到这一点,但最好的方法是使用Service Binding Manager(请参阅Configuring Multiple JBoss Instances On One Machine 中的详细说明)。

【讨论】:

  • 嗨帕斯卡,不幸的是,这种方式不起作用。没有其他进程使用端口 8080(我的 JBoss 使用 8080)。我不得不切换我的操作系统才能使用那个特定的应用程序。
  • @Shamal 很奇怪,很奇怪。抱歉,它对您的特定情况没有帮助。
  • 我还没有找到答案。我必须在 Windows XP 上工作才能解决这个问题。这似乎是与 windows 7 端口系统的一些不兼容?
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

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

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

    【讨论】:

      【解决方案4】:

      我知道这是一个老问题,但我最近才发现问题的一个原因以及解决方案。在我将代码放入循环之前,我的服务器套接字程序运行良好,然后在第一次尝试后每次尝试 accept() 时都会收到错误 Unrecognized Windows Sockets error: 0: JVM_Bind。我有这样的代码:

      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); 放在循环上方时,我才消除了错误。

      【讨论】:

        【解决方案5】:

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

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

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

        【讨论】:

        • 您先生是我的英雄。我正在运行一个非 JBoss 应用程序,但这修复了 lickity split
        • 如何/在哪里添加 JVM 选项?
        • 投票,即使它没有帮助我,因为这样 Java 在失败时会给出更多信息错误:)
        • 在哪里设置 JVM 选项。你能告诉我文件的位置吗
        • 要添加更多,您可以在构建jar中添加JVM选项,sbt clean assembly -Djava.net.preferIPv4Stack=true
        【解决方案6】:

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

        【讨论】:

          【解决方案7】:

          我的 Tomcat 遇到了这个问题,后来变成了与 Skype 的端口冲突。在我的 Skype->Options->Advanced->Connection 中,我取消选中以下“使用端口 80 和 443 作为传入连接的替代方案”。这样就彻底解决了问题。

          【讨论】:

            【解决方案8】:

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

            【讨论】:

              【解决方案9】:

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

              【讨论】:

                【解决方案10】:

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

                SET JAVA_OPTS=-Djava.net.preferIPv4Stack=true
                

                【讨论】:

                  【解决方案11】:

                  我不得不在java参数中添加SystemRoot参数。我不知道为什么java没有这个参数。它以前工作过。与

                  SystemRoot=C:\Windows

                  它有效。 我将 java 作为 Windows 服务 nssm 执行。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2013-06-13
                    • 1970-01-01
                    • 1970-01-01
                    • 2021-03-24
                    • 2015-12-06
                    • 1970-01-01
                    相关资源
                    最近更新 更多