JBOSS版本:4.2.3GA
症状:服务器无法通过IP地址去访问,只能用127.0.0.1或者localhost来访问。
开始怀疑是端口没有放开,用telnet ip 80 也不能连接,就一直怀疑端口问题,关闭防火墙还是不行,结果通过本机测试发现本机也出现这种情况,而用Myeclipse启动却是可以用ip访问,找到myeclipse启动jboss参数,发现加入-DHOMEDIR=C:\ET -DCacheSwitch=tree -b 0.0.0.0 再百度一切就明白了
解决办法:run.bat快捷方式到桌面 修改属性 目标后面加入 -b 0.0.0.0
======================================
原理:
启动JBOSS的时候输入:run -b xxx.xxx.xxx.xxx
其中xxx.xxx.xxx.xxx为本机的IP地址。
原因:
JBOSS 4.2以上版本服务启动如果不加任何参数的话,只监听127.0.0.1,就是说只能用127.0.0.1或者localhost访问,用本机的对外地址 访问不了,同一网络内别的机子没法访问。除非你用参数-b ip地址 来绑定监听的地址才可以。
这和以前版本的JBOSS不一样,以前版本的不加任何参数是监听本机所有的IP地址,现在必须使用参数-b 0.0.0.0才可以监听全部地址。
======================================
附,以下是我的具体解决方法:
在jboss-4.2.2.GA/bin目录下,新建start.bat文件,录入如下内容:
run.bat -b 0.0.0.0
保存即可。使用你新制作的start.bat文件启动服务之后就可以IP访问了。
======================================
Linux下面,同样使用run.sh -b xxx.xxx.xxx.xxx
方法2
%JBOSS_HOME%\server\
如果用default就,其他的路径一样
default\deploy\jbossweb.sar下的
server.xml里
address="${jboss.bind.address}"改成
address="0.0.0.0"
<Connector protocol="HTTP/1.1" port="${jboss.web.http.port}" address="0.0.0.0"
如果是用 http/1.3
<Connector protocol="AJP/1.3" port="${jboss.web.ajp.port}" address="0.0.0.0"
方法3
standlone.xml中找到<interfaces>项,一般在文件尾向上,其中有一项:
<interface name="public">
<inet-address value="${jboss.bind.address:0.0.0.0}"/>
</interface>
你的这个地址可能是${jboss.bind.address:127.0.0.1},改成四个0的形式就OK了