代码之家  ›  专栏  ›  技术社区  ›  brain storm

运行jboss实例时,jboss.bind.address应该是什么?

  •  0
  • brain storm  · 技术社区  · 10 年前

    我们的一个web项目配置为在 JBoss EAP 6. 在我们的开发机器中

    jboss.bind.address=192.168.XX.X (This is the IP of the machine I run JBOSS)
    jboss.bind.address.management=192.168.XX.X
    

    我的本地开发盒应该有什么。 我尝试了以下方法:

    127.0.0.1
    192.168.YY.YY (This is the ip address of my computer when I execute `ifconfig`)
    0.0.0.0
    

    我在我的本地盒子里尝试了以上所有方法。我发现了 127.0.0.1 192.168.YY.YY 启动时没有任何错误。但是 0.0.0.0 引发以下错误。

    我不完全理解jboss.bind.address和jboss.bindi.address.management是如何使用的。

    blog 提及

    您可以使用以下方法将应用程序服务器公共接口绑定到不同的IP地址: standalone.sh-Djboss.bind.address=192.168.0.1 .

    但我不明白这种捆绑意味着什么?我也试着在JBoss文档中查找。但我不太明白这次演讲的目的是什么。

    Mar 12 21:52:19 local7:2015-03-13 04: 52:19,463 INFO  [ServerService Thread Pool -- 76] [stdout] GMS: address=0.0.0.0/singleton, cluster=singleton, physical address=0.0.0.0:55200
    Mar 12 21:52:19 local7:2015-03-13 04: 52:19,463 INFO  [ServerService Thread Pool -- 76] [stdout] -------------------------------------------------------------------
    Mar 12 21:52:19 local7:2015-03-13 04: 52:19,466 ERROR [ServerService Thread Pool -- 76] [fail] MSC000001: Failed to start service jboss.infinispan.singleton.global-component-registry: org.jboss.msc.service.StartException in service jboss.infinispan.singleton.global-component-registry: org.infinispan.manager.EmbeddedCacheManagerStartupException: org.infinispan.CacheException: Unable to invoke method public void org.infinispan.remoting.transport.jgroups.JGroupsTransport.start() on object of type JGroupsTransport
    Mar 12 21:52:19 ...chronousService.java:91)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java: 1145)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
            at java.lang.Thread.run(Thread.java:745)
            at org.jboss.threads.JBossThread.run(JBossThread.java:122)
        Caused by: org.infinispan.manager.EmbeddedCacheManagerStartupException: org.infinispan.CacheException: Unable to invoke method public void org.infinispan.remoting.transport.jgroups.JGroupsTransport.start() on object of type JGroupsTransport
    Mar 12 21:52:19 ...ories.GlobalComponentRegistry.start(GlobalComponentRegistry.java:247)
            at org.jboss.as.clustering.infinispan.subsystem.GlobalComponentRegistryService.start(GlobalComponentRegistryService.java: 57)
            at org.jboss.as.clustering.msc.AsynchronousService$1.run(AsynchronousService.java:86)
            ... 4 more
        Caused by: org.infinispan.CacheException: Unable to invoke method public void org.infinispan.remoting.transport.jgroups.JGroupsTransport.start() on object of type JGroupsTransport
            at org.infinispan.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:205)
    Mar 12 21:52:19 ...t org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java: 886)
            at org.infinispan.factories.AbstractComponentRegistry.invokeStartMethods(AbstractComponentRegistry.java:657)
            at org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:646)
            at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:549)
            at org.infinispan.factories.GlobalComponentRegistry.start(GlobalComponentRegistry.java:225)
            ... 6 more
    Mar 12 21:52:19 ...cheException: Unable to start JGroups Channel
            at org.infinispan.remoting.transport.jgroups.JGroupsTransport.startJGroupsChannelIfNeeded(JGroupsTransport.java: 209)
            at org.infinispan.remoting.transport.jgroups.JGroupsTransport.start(JGroupsTransport.java:198)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:606)
    Mar 12 21:52:19 ...nfinispan.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:203)
            ... 11 more
        Caused by: java.lang.Exception: connecting to channel "null" failed
            at org.jgroups.JChannel._connect(JChannel.java:542)
            at org.jgroups.JChannel.connect(JChannel.java:283)
            at org.jgroups.JChannel.connect(JChannel.java:268)
            at org.infinispan.remoting.transport.jgroups.JGroupsTransport.startJGroupsChannelIfNeeded(JGroupsTransport.java:207)
            ... 17 more
        Caused by: java.lang.IllegalArgumentException: failed to start server socket
    Mar 12 21:52:19 ..._SOCK.java:308)
            at org.jgroups.protocols.FD.down(FD.java: 290)
            at org.jgroups.protocols.VERIFY_SUSPECT.down(VERIFY_SUSPECT.java:84)
            at org.jgroups.protocols.pbcast.NAKACK.down(NAKACK.java:569)
            at org.jgroups.protocols.UNICAST2.down(UNICAST2.java:544)
            at org.jgroups.protocols.pbcast.STABLE.down(STABLE.java:329)
            at org.jgroups.protocols.pbcast.GMS.down(GMS.java:931)
            at org.jgroups.protocols.FlowControl.down(FlowControl.java:351)
            at org.jgroups.protocols.FlowControl.down(FlowControl.java:351)
            at org.jgroups.protocols.FRAG2.down(FRAG2.java:147)
    Mar 12 21:52:19 ...org.jgroups.protocols.RSVP.down(RSVP.java:143)
            at org.jgroups.stack.ProtocolStack.down(ProtocolStack.java: 1030)
            at org.jgroups.JChannel.down(JChannel.java:722)
            at org.jgroups.JChannel._connect(JChannel.java:536)
            ... 20 more
        Caused by: java.net.BindException: bind_addr /0.0.0.0 is not a valid interface: java.net.BindException: Address already in use
            at org.jgroups.util.Util.createServerSocket(Util.java:3404)
            at org.jgroups.protocols.FD_SOCK.startServerSocket(FD_SOCK.java:568)
            at org.jgroups.prot
    
    1 回复  |  直到 10 年前
        1
  •  2
  •   shonky linux user    10 年前

    问题在于:

    java.net.BindException: Address already in use
    

    当您绑定到0.0.0.0时,您将绑定到主机上的所有IP地址。如果JBoss在任何IP地址上使用的某个端口上已经绑定了其他东西,您将看到此错误。

    JBoss绑定到端口,因此到端口的任何连接都指向JBoss。如果有另一个进程已经在侦听该端口,则该端口被锁定到该另一进程,JBoss无法绑定它。

    管理IP地址和端口用于管理JBoss配置,而JBoss.bind.address用于最终用户访问。管理地址通常会设置为内部IP地址,该地址可能位于生产环境中的不同接口(例如后端接口)上。

    上面的错误与jgroups管理端口有关。。。

        <socket-binding name="jgroups-mping" port="0" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45700"/>
        <socket-binding name="jgroups-tcp" port="7600"/>
        <socket-binding name="jgroups-tcp-fd" port="57600"/>
        <socket-binding name="jgroups-udp" port="55200" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45688"/>
        <socket-binding name="jgroups-udp-fd" port="54200"/>
    

    检查机器上没有其他进程已经打开了其中一个端口(可能是另一个JBoss实例?)

    您也可以使用偏移量启动jboss,这样所有端口都会按您指定的偏移量增加。例如,如果启动jboss时使用

    -Djboss.socket.binding.port-offset=100
    

    则端口8080变为8180等等。这可以防止端口冲突。或者只使用一个特定的(否则未使用的)ip地址进行管理——这确实取决于您的环境。