JBoss AS 7 not accepting remote connections
Asked Answered
D

4

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?

Dvinsk answered 12/4, 2012 at 22:14 Comment(3)
Could it be a firewall issue?Absenteeism
Please post your configuration file, and indicate whether you are using a Standalone instance or the Managed Domain.Hardman
It is a standalone instance. The configuration file is default (I just added the DB connection string).Dvinsk
D
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>
Dvinsk answered 19/4, 2012 at 14:0 Comment(4)
<any-address /> worked, <any-ipv4-address /> didn’t work in my case.Hjerpe
the same for me; <any-address /> works. I have the version 7.1.1. however, this one also works: <inet-address value="${jboss.bind.address:0.0.0.0}"/>Ruano
I tried this over 2 days.But unable to fixed.This solution worked for me.I used this solution by replacing <any-ipv4-address/> to <any-address/>..oohhh..thank you :-DThaumatology
Hi folks, check the comment by @ᴠɪɴᴄᴇɴᴛ that worked in my case too. We are using Jboss 7.2.6Benniebenning
P
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>
Phenice answered 10/5, 2012 at 16:44 Comment(3)
This works, but can you clarify what you mean by "Just be aware of the security"?Scottiescottish
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.Ganoid
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.Idyllic
C
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.

Capps answered 12/4, 2012 at 22:18 Comment(7)
if you're in Windows, the shell script is run.batOtey
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.Legumin
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.Hardman
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?Dvinsk
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.Legumin
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?Dvinsk
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?Dvinsk
O
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
Ocarina answered 23/7, 2017 at 7:11 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.