为glassfish配置多个domain

为glassfish配置多个domain
    在开发的过程中,我们可能需要将生产环境和调试环境分开来,这样才能保证安全性,但是安装两个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 &quot;${adminpassfile}&quot;"   />
        
< 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的浓香.

你可能感兴趣的:(为glassfish配置多个domain)