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

 

转自:http://fanzhongyun.iteye.com/blog/1454967

 

刚开始测试访问远程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测试一下,正常。 

你可能感兴趣的:(localhost)