我刚刚配置了JBoss WildFly。它正在运行,可以从同一台机器上访问,一切正常......
我的问题是无法从其他系统访问它(我的意思是在网络中,服务器(托管计算机)URL无法从其他系统访问)。
我该如何解决这个问题?
答案 0 :(得分:55)
默认情况下jboss / wildfly绑定到localhost,如果你想改变这个,你可以执行:
standalone.sh -b 0.0.0.0
侦听机器的所有IP地址(如果是多宿主的)
另一种选择是在standalone.xml
接口部分配置。
更改:
<interfaces>
<interface name="management">
<inet-address value="127.0.0.1"/>
</interface>
<interface name="public">
<inet-address value="127.0.0.1"/>
</interface>
</interfaces>
为:
<interfaces>
<interface name="management">
<!-- Use the IPv4 wildcard address -->
<any-ipv4-address/>
</interface>
<interface name="public">
<!-- Use the IPv4 wildcard address -->
<any-ipv4-address/>
</interface>
</interfaces>
参考:
<强>更新强>
来自Wildfly 8 <any-ipv4-address/>
deprecated并在Wildfly 9中移除,如果您使用9.x或更高版本,请使用<any-address/>
。
已过时。在没有
-Djava.net.preferIPv4Stack=true
的情况下,。{ 无法指示JVM将套接字绑定到所有IPv4地址,但是 仅限于IPv4地址,因此无法获得预期的语义 仅通过此设置。自使用any-addressType
和设置-Djava.net.preferIPv4Stack=true
提供了相同的效果any-ipv4-addressType
将在以后的版本中删除。
例如:
<interface name="global">
<!-- Use the wildcard address -->
<any-address/>
</interface>
答案 1 :(得分:19)
在WF 9中弃用<any-ipv4-address/>
,使用:
...
<interface name="management">
<any-address/>
</interface>
...
答案 2 :(得分:4)
(我总结了2个工作解决方案的答案)
我在写作时使用WildFly 10.0.0.Final - 最新版本。像这样查找文件sed -e 's/<KEY>[[:digit:]]\{13\}/(&)/g' -e 's/(.*)/<KEY>*************/g' pan.txt
:
在Windows上
KEY
或Linux,就像这样:
standalone.xml
编辑成为:
C:\tools\wildfly-10.0.0.Final\standalone\configuration\standalone.xml
然后转到:
/home/vyhn.net/wildfly-servlet-10.0.0.Final/standalone/configuration/standalone.xml
(端口<interfaces>
<interface name="management">
<!-- Allow all external IP -->
<any-address/>
</interface>
<interface name="public">
<!-- Allow all external IP -->
<any-address/>
</interface>
</interfaces>
是默认的HTTP端口,如果使用防火墙或iptables,请记住开放端口http://your_domain:9990/error/index.html
)
例如:
9990
你会看到它成功 最新参考(WildFly 10):https://docs.jboss.org/author/display/WFLY10/Interfaces+and+ports
答案 3 :(得分:2)
不要忘记防火墙!
如果您修复了绑定地址但仍然无法连接到JBoss,请尝试解决服务器的防火墙问题。
要在Linux上停止防火墙 RHEL ,请使用以下命令:
/etc/init.d/iptables stop
更新(2018年4月):
在 RHEL7 上,使用 firewalld (而不是iptables),您可以使用:
systemctl stop firewalld
或使用以下两个命令打开特定的Jboss / Wildfly端口(例如8080/9990):
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
答案 4 :(得分:0)
您可以使用-b 0.0.0.0来允许访问,无论分配的公共IP如何,例如对于获得动态IP(使用DHCP)的计算机,我发现这是一种方便的方法。
Eclipse用户:请注意,在服务器配置中,“主机名:”输入用于设置“-b”程序参数,覆盖您的修改!