在Glassfish上建立多个domain
一般在Glassfish下面新建domain都是使用其自带的ANT文件setup.xml。有时需要建立多个domain来区分开发和生产环境。如果直接修改setup.xml中的domain.name来新建,则两个domain会由于端口冲突不能同时运行。setup.xml中列出了Glassfish用到的如下端口:
<property name="admin.port" value="4848"/><property name="instance.port" value="8888"/><property name="orb.port" value="3700"/><property name="imq.port" value="7676"/><property name="https.port" value="8181"/>
?
但实际上Glassfish还用到了如下端口,这些端口没有在setup.xml中列出:
orb.ssl.portorb.mutualauth.portdomain.jmxPort
?
如果需要两个domain能同时运行,domain所用到的以上所有的端口都不能相同。上面列出的三个端口跟前面的一样,是通过"--domainproperties"在setup.xml中作为参数传入的:
<target name="create.domain" depends="setup.init,set.env"> <exec executable="${ASADMIN}" failonerror="true"> ... <arg line="--domainproperties orb.listener.port=${orb.port}:jms.port=${imq.port}:http.ssl.port=${https.port}:domain.jmxPort=${jmx.admin}:orb.ssl.port=${iiop_ssl}:orb.mutualauth.port=${iiop_mutualauth}" /> ... </exec> ...</target>?
这样在setup.xml中如下设置这些对应的属性即可:
<property name="admin.port" value="4848"/><property name="instance.port" value="8888"/><property name="orb.port" value="3700"/><property name="imq.port" value="7676"/><property name="https.port" value="8181"/><property name="iiop_ssl" value="3821"/><property name="iiop_mutualauth" value="3921"/><property name="jmx.admin" value="8687"/>
?
每次新建domain时,增加这些端口的值就可以保证新建的domain能正常启动而不与已有的domain发生端口冲突。
?
1 楼 judytang 2008-06-05 谢谢分享你的收获。是个好方法