JBoss中的一些问题

昨天晚上给网络专业上《Java EE应用开发基础》的实验,实验结束后,有同学问了几个问题,整理一下,分享:

1、JBoss 4.2.3GA发布出来的应用不能被其他机器访问

以前还真没发现这个问题,百度了一下,才知道JBoss4.2以上版本存在仅限本机访问的问题,解决办法也很简单,启动时加个参数就可以了,如果直接启动JBoss,可以新建一个bat文件(startup.bat,呵呵,受tomcat的影响),文件内容:

run.bat -b 0.0.0.0

如果你是在eclipse中启动tomcat,需要指定启动参数:

 

eclipse中给JBoss添加参数

这样其他机器就能访问该JBoss的服务了,包括JNDI,呵呵。

 

究其原因,JBoss绑定了${jboss.bind.address}这个参数,这个参数默认是127.0.0.1,所以出现了上面的问题。

 

2、访问多个JNDI服务器的问题

有学生问,试验中JNDI的参数是写在jndi.properties中的,只能指定一个JNDI服务器,如何才能指定多个JNDI的服务器呢?
这个问题我还真没考虑过,以前都是把所有的JNDI都注册到一个JNDI服务器上,还真没考虑过多个JNDI服务器的问题。
以前的处理方式(多个分布的服务器把JNDI都注册到一个JNDI服务器上,以JBoss为例):
假设我们使用server-1上的JNDI,那么server-1上的JBoss中的JNDI配置成localhost即可,也就是说server-1的${JBOSS_HOME}/server/default/conf/下jndi.properties配置为:

# DO NOT EDIT THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING
#
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces

而server-2不使用本机的JNDI服务,而是使用server-1的JNDI,所以server-2的

${JBOSS_HOME}/server/default/conf/下jndi.properties配置为:

# DO NOT EDIT THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING
#
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=server-1/:1099

这样在客户端的jndi.properties中JNDI的url配置成server-1的地址就可以了。

 

 

至于学生问的问题,也不是没有解决办法,只是JNDI的配置信息需要在Properties中载入了:

Properties props = new Properties();
props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
props.setProperty("java.naming.provider.url","server-1:1099");
InitialContext ctx1 = new InitialContext(props);
ctx1.lookup.... //server-1上的ejb,

 

props = new Properties();
props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
props.setProperty("java.naming.provider.url","server-2:1099");
InitialContext ctx2 = new InitialContext(props);
ctx2.lookup... //server-2上的ejb,

 

当然,也可以把两个服务的properties放到XML或者properties文件中,从自己定义的文件中读取相应参数也是可以的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值