JBoss远程访问EJB

转自:http://glmxzz.blog.163.com/blog/static/1332127902009102602532810/

1. 远程访问EJB

        针对 EJB(1)中的HelloEJB例子中,如果在局域网内的另一台机器调用部署在JBoss里面的HelloEJB,则需将HelloEJBClient中的prop.put("java.naming.provider.url", "localhost:1099");这段代码改为prop.put("java.naming.provider.url", "192.168.2.182:1099");,也就是将localhost改为JBoss所在的IP地址,运行,如无意外,将会出错,错误信息大概为:Could not obtain connection to any of these urls: 192.168.2.182:1099。
2. 访问http://192.168.2.182:8080或者http://127.0.0.1:8080
       此时第一反应便是ping 192.168.2.182,结果并没有出现任何问题,接着便访问 http://192.168.2.182:8080,发现不能访问,如果是服务器是Tomcat的话,该访问是没有任何问题的。于是便上网搜索,发现JBoss是默认将IP绑定为127.0.0.1的,所以便会出现访问不了 http://192.168.2.182:8080,甚至在JBoss服务器本机也不能访问该地址。而只能访问 http://127.0.0.1:8080或者 http://localhost:8080,那该如何解决呢?
        打开%JBOSS_HOME%\server\default\deploy\jbossweb.sar目录,编辑server.xml,找到
<Connector protocol="HTTP/1.1" port="8080" address="${jboss.bind.address}"                                                               connectionTimeout="20000" redirectPort="8443" />
<Connector protocol="AJP/1.3" port="8009" ddress="${jboss.bind.address}" 
                  redirectPort="8443" />
将address="${jboss.bind.address}修改为address="192.168.2.182",重启JBoss,便可以在局域网中的任何一台机器上访问 http://192.168.2.182:8080,可这次如果在JBoss服务器本机上却不能访问 http://127.0.0.1:8080,如果要让两个同时都能访问,则需将address="192.168.2.182"修改为address="0.0.0.0"。
3.解决远程访问EJB
       现在再次调用HelloEJBClient,发现错误依然,可见上面的修改并没有影响到EJB的调用,仔细想想,刚才所修改的是web的URL,而EJB所需要的是JNDI的URL,所以错误依然,再通过网络搜索,发现可以通过以下方法解决,在%JBOSS_HOME%\bin目录下,创建run.bat的快捷方式,然后如图所示在其Target后面加上--host=192.168.2.182,重启JBoss,然后再次调用HelloEJBClient即可成功。
JBoss(1) - 十诫 - glmxzz的天空
如果是在eclipse开发环境下的话,打开Servers视图,双击Jboss服务器,再点击Overview视图中的Open launch configuration,在弹出来的对话框里,如图所示输入--host=192.168.2.182,确定之后重启Jboss,即可。
JBoss(1) - 十诫 - glmxzz的天空

至于如何设置JBoss的配置文件才能达到这一效果,目前还没有找到,找到了再添加。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值