40

I am using JBoss AS 7 and trying to connect to my application using the IP (from a computer in the intranet). It is not working. If I test from the computer which has the server I can see the system running if I go through localhost (http://localhost:8080/MySystem....) but not If I try with the IP (http://:8080/MySystem....).

Any help?

davidryan
  • 2,222
  • 20
  • 31
Tony
  • 10,088
  • 20
  • 85
  • 139

4 Answers4

82

The answer is to edit standalone.xml and insert the tag any-address instead of inet-address bound to 127.0.0.1

<interfaces>
    <interface name="management">
        <inet-address value="127.0.0.1"/>
    </interface>
    <interface name="public">
       <any-ipv4-address/>
    </interface>
</interfaces>
Tony
  • 10,088
  • 20
  • 85
  • 139
22

I changed the 127.0.0.1 (localhost) to 0.0.0.0 in standalone.xml. It works. Just be aware of the security.

<interfaces>
    <interface name="management">
        <inet-address value="${jboss.bind.address.management:0.0.0.0}"/>
    </interface>
    <interface name="public">
        <inet-address value="${jboss.bind.address:0.0.0.0}"/>
    </interface>
    <!-- TODO - only show this if the jacorb subsystem is added  -->
    <interface name="unsecure">
        <!--
          ~  Used for IIOP sockets in the standard configuration.
          ~                  To secure JacORB you need to setup SSL 
          -->
        <inet-address value="${jboss.bind.address.unsecure:0.0.0.0}"/>
    </interface>
</interfaces>
Eric
  • 1,031
  • 4
  • 14
  • 29
  • This works, but can you clarify what you mean by "Just be aware of the security"? – sho222 Jan 07 '13 at 15:37
  • 1
    Re. security, if you want the server to be externally accessible then it's not an issue, but you may want to restrict the management interface to not be remotely accessible. – Kevin Hooke Jan 11 '13 at 23:12
  • 1
    Allowing binding to 0.0.0.0 means the server will listen for connections to any ip, so it is something you should be aware of. – Pedro Oct 15 '13 at 02:37
10

Did you configure the IP address into the config file?

Starting jboss without configuring the ip address will set the default address for jboss to localhost which is fit for development or maybe for a production server, where apache is used as the proxy to jboss and resides in the same machine.

To set the ip address for JBoss :

To a specific IP address
run.sh -b 10.62.31.31
To localhost or the IP address assigned to the server
run.sh -b 0.0.0.0

You can also change it in the configuration file under the <interfaces> section.

James R. Perkins
  • 16,800
  • 44
  • 60
Peter Penzov
  • 1,126
  • 134
  • 430
  • 808
  • 3
    if you're in Windows, the shell script is `run.bat` – Luiggi Mendoza Apr 12 '12 at 22:29
  • 4
    And in JBoss AS7 it's not run at all :-) It's standalone.sh for the standalone server and domain.sh for the domain server. On Windows just change the sh to bat. – James R. Perkins Apr 13 '12 at 00:41
  • There is no "run.sh" script in JBoss AS 7, and while the -b switch was implemented in this version, it should not be relied upon as there are issues with inheritance where an IP is specifically declared in the configuration file. The switch will only work where the java token "${jboss.bind.address.management:127.0.0.1}" remains. As ever, using the Management Console or the Management CLI offers the best in administrative options. – davidryan Apr 13 '12 at 03:35
  • Thanks, can you tell me what should I do in the Management Console or Management CLI to configure it? Or should I change standalone.bat? – Tony Apr 13 '12 at 13:01
  • 2
    You definitely don't want to change standalone.bat. When the server is started from CLI you can execute /interface=public:write-attribute(name=inet-address,value="${jboss.bind.address:xxx.xxx.xxx.xxx}") to set the IP. It's even easier on the web console. Just look in the profile under interfaces. – James R. Perkins Apr 13 '12 at 16:00
  • Do you mean that I have to execute standalone.bat /interface=public:write-attribute(name=inet-address,value="${jboss.bind.address:0.0.0.0}") , right? – Tony Apr 16 '12 at 13:54
  • The command standalone.bat /interface=public:write-attribute(name=inet-address,value="${jboss.bind.address:0.0.0.0}") didn't worked. How can I open the web console? – Tony Apr 16 '12 at 15:52
0

Don't forget the firewall !

If you fixed the binding addresses and still can not connect to JBoss, try to work around the server's firewall.

To stop the firewall on Linux RHEL use this command:

/etc/init.d/iptables stop

an update: On RHEL7, where iptables is not installed - you may use:

systemctl stop firewalld
Naor Bar
  • 1,991
  • 20
  • 17