在开发的过程中,我们可能需要将生产环境和调试环境分开来,这样才能保证安全性,但是安装两个glassfish又不太可能,因为它太庞大了。另外做为一个工程发布也不太方便,每次都要将工程名改来改去,并且绑定的ejb在同一个域内里是不能同名的。这样的话,要改变的东西实在是太多了。
我们可有以第三种方法,那就是为glassfish添加另外的domain,一个domain跑我们的真实环境,一个domain跑我们的测试环境,因为是同一个glassfish,所以也不会存在从测试到真实环境的移植问题。以后只要改一个domain就可以了。我们在安装glassfish的时候,它已经默认为我们安装了一个domain,那就是domain1.
我们查看setup.xml里面可以看出,是如何新建domain的,于是我们把我们需要的一些target提取了出来,见如下。下面的配置里面唯一可能需要改变的就是glassfish安装目录这个属性了,其它可以按照我配的来,也可以自己修改。
xml version="1.0" encoding="utf-8"?>
<project name="createdomain" default="create.domain" basedir=".">
<target name="setenv">
<property name="domain.name" value="domain3"/>
<property name="admin.user" value="admin"/>
<property name="admin.password" value="adminadmin"/>
<property name="admin.port" value="6848"/>
<property name="instance.port" value="10080"/>
<property name="orb.port" value="5700"/>
<property name="imq.port" value="9676"/>
<property name="https.port" value="10181"/>
<property name="iiop.ssl" value="5821"/>
<property name="iiop.mutualauth" value="5921"/>
<property name="jmx.admin" value="10687"/>
<property name="install.home" value="c:/program files/glassfish-v2ur2"/>
<property name="adminpassfile" value="${install.home}/passfile"/>
<property name="asadmin" value="${install.home}/bin/asadmin.bat"/>
<echo file="${adminpassfile}" append="false">as_admin_adminpassword=${admin.password}echo>
target>
<target name="create.domain" depends="setenv">
<exec executable="${asadmin}" failonerror="true">
<arg line="create-domain" />
<arg line="--adminport ${admin.port}" />
<arg line="--instanceport ${instance.port}" />
<arg line="--user ${admin.user}" />
<arg line="--passwordfile "${adminpassfile}"" />
<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}" />
<arg line="--savelogin" />
<arg line="${domain.name}" />
exec>
<delete file="${adminpassfile}" />
target>
project>
然后用ant执行它就可以了,我这里的执行输出如下:
c:\program files\glassfish-v2ur2>ant
buildfile: build.xml
setenv:
create.domain:
[exec] using port 6848 for admin.
[exec] using port 10080 for http instance.
[exec] using port 9676 for jms.
[exec] using port 5700 for iiop.
[exec] using port 10181 for http_ssl.
[exec] using port 5821 for iiop_ssl.
[exec] using port 5921 for iiop_mutualauth.
[exec] using port 10687 for jmx_admin.
[exec] domain being created with profile:developer, as specified by variabl
e as_admin_profile in configuration file.
[exec] the file in given locale [zh_cn] at: [c:\program files\glassfish-v2u
r2\lib\install\templates\locales\zh_cn\index.html] could not be found. using def
ault (en_us) index.html instead.
[exec] security store uses: jks
[exec] domain domain3 created.
[exec] login information relevant to admin user name [admin] for this domai
n [domain3] stored at [c:\documents and settings\hadeslee\.asadminpass] successf
ully.
[exec] make sure that this file remains protected. information stored in th
is file will be used by asadmin commands to manage this domain.
[delete] deleting: c:\program files\glassfish-v2ur2\passfile
build successful
total time: 21 seconds
c:\program files\glassfish-v2ur2>
这样我们就可以看到glassfish的domains目录下面,多出了一个domain3这个文件夹。然后有关数据库连接池啊什么的,就可以到该目录下面的config/domain.xml去改了,domain.xml里面的属性我们以后有时候再好好研究一下。当然,我们也可以去glassfish的控制台进行可视化修改,glassfish的控制台是所有的应用服务器里面做得最好的一个了。访问的端口就是我们新建domain的时候用到的
admin.port的这个属性。
尽管千里冰封
依然拥有晴空
你我共同品味java的浓香.
posted on 2008-10-14 22:59
千里冰封 阅读(5933)
评论(2) 编辑 收藏 所属分类:
javaee