解决JBoss只能通过localhost(127.0.0.1)而不能通过IP访问远程EJB对象



刚开始测试访问远程EJB对象的时候,我的EJB是发布到我本人本机的JBoss6上的,所以请求的URL我写的是localhost(或者是本机回路地址:127.0.0.1),测试正常。
但是当我将请求的URL改成:192.168.0.3(本人的局域网IP),再次测试的时候,后台抛出了连接异常的信息。
到网上搜索了一下,原来
JBoss出于安全原因,企业版默认绑定的是localhost,其他IP是无法访问的

解决方案1:

解决这个问题的方案网上有例子:
启动cmd,进到你JBoss安装目录下的bin目录下,执行run.bat -b 0.0.0.0 指令。再测试一下,OK,正常。

原因:
JBoss 4.2以上版本服务启动如果不加任何参数的话,只监听127.0.0.1,也就是说只能用127.0.0.1或者localhost访问,用本机的对外地址访问不了,同一网络内别的机子没法访问。除非你用参数-b ip地址来绑定监听的地址才可以。

注:网上还有例子说:修改jboss\server\default\deploy\XX(不同版本这个文件夹名称不一样)\server.xml 把 Connector 下面的 address 改成对应的 IP 或者 0.0.0.0 就可以用 IP 访问了。
这个我试过了,没有用。朋友们也可以试试这个方案看是否能行。


解决方案2:

网上还有一个例子是这样说的:
在你jboss安装的bin目录下,新建文本文件,录入如下内容:
run.bat -b 0.0.0.0
将此文件保存为xxx.bat文件即可。
双击启动这个xxx.bat文件,测试一下,访问正常,OK。


解决方案3:

上面的都是来自网上的例子,我在这里只是整理一下,当然了,我有我自己的解决方案。不然就不会有这篇博文。

通常,我们使用的服务器都是集成到了我们的开发环境中了,我用的是myeclipse开发工具,这里以myeclipse为例来解决这个问题。

具体步骤:
Window-->Preferences-->MyEclipse-->Servers-->JBoss-->JBoo 6.x(以jboss6为例)

展开JBoss 6.x 选中Launch,点击Create Launch Configuration按钮

解决JBoss只能通过localhost(127.0.0.1)而不能通过IP访问远程EJB对象_第1张图片

进到如下界面:

解决JBoss只能通过localhost(127.0.0.1)而不能通过IP访问远程EJB对象_第2张图片

为你的JBoss另取一个别名(避免混乱),选中Arguments选卡,在文本域里多加一句指令:-b 0.0.0.0,点击Apply按钮,关闭窗口。
一切搞定。回到控制台,启动你刚才新创建的JBoss,用局域网IP测试一下,正常。







你可能感兴趣的:(jboss,MyEclipse,ejb,0.0.0.0,run.bat,-b)