Sky's blog

我和我追逐的梦

常用链接

统计

其他链接

友情链接

最新评论

初学glassfish(1)--安装并准备开发环境


    近期由于公司有意向在未来将目前的一个大型产品从weblogic移植到glassfish,因此提前学习glassfish以做好准备。

    首先从下载安装开发,学习如何搭建glassfish的开发环境。

一. 下载安装运行
    1) 下载
    从官网https://glassfish.dev.java.net/public/downloadsindex.html下载,目前最新的release版本是GlassFish Server v2 Update Release 2 (UR2)。v3只有
Prelude版本,正式的v3估计要到09年一季度。我下载的是glassfish-installer-v2ur2-b04-windows.jar的版本,54M而已,比weblogic小太多了。
   
    2) 安装
        安装方式遵循官方建议(https://glassfish.dev.java.net/downloads/v2ur2-b04.html中的"Instructions to unbundle and configure GlassFish")
        1. copy 下载的文件到要安装的目录,比如c:\soft
        2. 执行java -Xmx256m -jar filename.jar
            按照安装程序的提示进行。
        3. 运行ant脚本 lib\ant\bin\ant -f setup.xml
        4. 完成后,在原目录下会出现一个glassfish目录,所有文件都在里面

        在安装前请先确保jdk已经正确安装,JAVA_HOME属性设置正确.

    3) 系统配置
        1. 将install-dir\bin加入到Path路径
        2. 添加新的环境变量 AS_ADMIN_USER,并将其设置为在安装过程中指定的管理员用户名。
            这个是sun的快速入门指南中的要求,但是实际操作中发现不设置也可以正常启动glassfish。

    4) 运行
        需要使用到glassfish\bin\目录下的asadmin.bat。
        方法1) 直接鼠标双击,弹出窗口中输入start-domain domain1,如果成功会看到启动信息。
        方法2) 运行 -> cmd 进入命令行,进入glassfish\bin目录,执行asadmin start-domain domain1

    5) 检验
        打开浏览器访问http://localhost:8080/,或者访问glassfish的console http://localhost:4848/.

    6) 以下信息是glassfish安装后的默认配置

domain.name=domain1
instance.name=server
admin.user=admin
admin.password=adminadmin
admin.port=4848
instance.port=8080
orb.port=3700
imq.port=8686
https.port=8181


二. eclipse的glassfish插件
   
    eclipse的glassfish插件的下载安装可以参考官方文档,基本照着做就可以了。
    https://glassfishplugins.dev.java.net/eclipse34/index.html



三.搭建自己的开发环境

1. 新建admin用户

    使用默认的用户名密码admin/adminadmin登录console,在Configuration -> Security -> Realms -> admin-realm 下点"manager users",添加自己需要的新admin用户。
    示例如下:

    User ID = sigadmin
    Group List = asadmin
    password = sigadmin


2. 新建开发需要使用的domain

    默认安装时会建立domain1,为了方便我们需要自行建立属于自己的domain,尤其对于公司团队开发,往往一台开发机器上安装一个glassfish,不同开发人员每人都有属于自己的domain来开发测试。


    2.1) create domain

        执行以下命令:
        asadmin create-domain --user sigadmin -e --passwordfile=password.properties --portbase 34000 --profile developer domain_340

        其中--passwordfile=password.properties指明密码文件,否则asadmin命令会以交互方式要求输入相应密码。password.properties文件内容如下:

        AS_ADMIN_PASSWORD=sigadmin
        AS_ADMIN_ADMINPASSWORD=sigadmin
        AS_ADMIN_USERPASSWORD=sigadmin
        AS_ADMIN_MASTERPASSWORD=sigadmin
 
        --portbase 34000指定当前新建的domian的portbase,--portbase 34000的意思就是该domain的各个端口以34000为基数增加,从日志中可以看到:

      Using port 34048 for Admin.
      Using port 34080 for HTTP Instance.
      Using port 34076 for JMS.
      Using port 34037 for IIOP.
      Using port 34081 for HTTP_SSL.
      Using port 34038 for IIOP_SSL.
      Using port 34039 for IIOP_MUTUALAUTH.
      Using port 34086 for JMX_ADMIN.

        和前面默认建立的domain1的端口对照,可以看到基本是每个端口都有一个基数,然后加portbase就得到最终使用的端口好。

                                    portbase=34000        default        基数

Admin                        34048                          4848             48
HTTP Instance         34080                          8080             80
JMS                            34076
IIOP                            34037                          3700             37
HTTP_SSL                34081                          8181             81
IIOP_SSL                   34038
IIOP_MUTUALAUTH        34039            
JMX_ADMIN          34086                          8686              86


        使用--portbase比较方便记忆,推荐这样使用,避免逐个指定不同端口。为了方便记忆,domain的名字取名为domain_340以对应。

    2.2)start domain

        执行命令:
        asadmin start-domain -e --passwordfile=password.properties domain_340
       
    2.3) stop domian
        执行命令:
        asadmin stop-domain -e domain_340

    2.4) delete domain

        执行命令:
        asadmin delete-domain -e domain_340
        注意必须在domain处于stop的情况下才能delete。

    为了方便,提供一个简单的ant脚本处理以上命令,直接通过exec来调用asadmin.bat:

    ant.build

    
<?xml version="1.0" encoding="UTF-8"?>
<project name="GfAsadminDemo" default="listDomains" >
    
<description>demo of how to use adadmin command</description>
    
<property file="build.properties" />

    
<target name="listDomains">
        
<exec executable="asadmin.bat">
            
<arg line="list-domains -e"/>
        
</exec>
    
</target>
   
    
<target name="createDomain">
        
<echo>begin to create domain ${domain.name}</echo>
        
<exec executable="asadmin.bat" dir="." failifexecutionfails="true">
            
<arg line="create-domain --user ${AS_ADMIN_USER} -e --passwordfile=password.properties --portbase ${domain.baseport} --profile developer ${domain.name}"/>
        
</exec>
        
<echo>finish to create domain ${domain.name}</echo>
    
</target>
   
    
<target name="startDomain">
        
<echo>begin to start domain ${domain.name}</echo>
        
<exec executable="asadmin.bat" dir="." failifexecutionfails="true" >
            
<arg line="start-domain -e --passwordfile=password.properties ${domain.name}"/>
        
</exec>
        
<echo>finish to start domain ${domain.name}</echo>
    
</target>
   
    
<target name="stopDomain">
        
<echo>begin to stop domain ${domain.name}</echo>
        
<exec executable="asadmin.bat" dir="." failifexecutionfails="true">
            
<arg line="stop-domain -e ${domain.name}"/>
        
</exec>
        
<echo>finish to stop domain ${domain.name}</echo>
    
</target>
   
    
<target name="deleteDomain">
        
<echo>begin to delete domain ${domain.name}</echo>
        
<exec executable="asadmin.bat" dir=".">
            
<arg line="delete-domain -e ${domain.name}"/>
        
</exec>
        
<echo>finish to delete domain ${domain.name}</echo>
    
</target>
</project>


    build.properties

domain.name=domain_340
domain.baseport=34000
AS_ADMIN_USER=sigadmin


    (更适当的方法是通过asant来直接操作,不过上面的ant脚本只是为了演示asadmin的使用。)

ps,解释一下为什么考虑从weblogic迁移道glassfish:

1. 经济原因
    毕竟glassfish不要钱,而weblogic价格不菲。我们做的产品是面对国际市场的各国电信运行商,总不可能让他们从盗版吧。因此weblogic会带来成本问题。
2. 客户需求
    这个其实也和经济原因有关,因为成本问题,因此有客户希望我们能将产品迁移到glassfish。而且最近有一个大客户明确要求使用glassfish,为了在未来有机会拿到他们的单,glassfish的使用就变得很现实了。
3. 技术原因
    weblogic目前对新技术的支持可以说是很不积极的,呵呵,可能weblogic有它的考虑,我们不深入讨论。开源的免费的技术新潮的glassfish,尤其是即将发布的v3版本,很有吸引力。
    glassfish对于开发人员也更加友好,没有weblogic的臃肿与庞大,尤其启动速度太有优势了

4) 个人喜好
    这个就纯属个人喜欢,坦白说我对weblogic的上述表现非常厌恶,我个人就比较讨厌大而满的东西,weblogic和我的美学完全不相合,我学它用它只是为了工作。当然这个是很小的原因,不过似乎公司和我抱有类似想法的开发人员不少,因此还是可以形成一个不算太小的声音。

    当然,最终公司是否会下定决心将我们那个巨无霸级别的产品迁移道glassfish上,还有很多很多的东西需要考虑和权衡,技术的,非技术的都有,目前只是处于可行性分析阶段。

posted on 2009-01-24 10:28 sky ao 阅读(3423) 评论(6)  编辑  收藏 所属分类: ejb

评论

# re: 初学glassfish(1)--安装并准备开发环境 2009-01-24 11:52 heyang

好,支持一下。

GlassFish和Sun以前的AppServer有很大提升,市场反响也不错,值得研究研究。相对而言从bea被Oracle收购后就开始走下坡路了。  回复  更多评论   

# re: 初学glassfish(1)--安装并准备开发环境[未登录] 2009-01-24 17:37 Rainman

为什么要从weblogic转glassfish可以讲一下么? 技术原因还是经济原因  回复  更多评论   

# re: 初学glassfish(1)--安装并准备开发环境[未登录] 2009-01-25 09:38 xxx

为什么我执行java -Xmx256m -jar filename.jar后,
在lib\ant\bin\ant目录下没有setup.xml文件?
  回复  更多评论   

# re: 初学glassfish(1)--安装并准备开发环境 2009-02-04 16:07 死循环

建议还是考虑其他开源数据库......postgre 也许更实际点....
当然要看项目有多"大"....  回复  更多评论   

# re: 初学glassfish(1)--安装并准备开发环境 2009-02-25 15:53 runaway

因为 setup.xml 是在 Glassfish 文件夹底下
如:
D:\glassfish>d:\glassfish\lib\ant\bin\ant -f setup.xml


这样 你进到 glassfish的地下运行上面



为什么我执行java -Xmx256m -jar filename.jar后,
在lib\ant\bin\ant目录下没有setup.xml文件?   回复  更多评论   

# re: 初学glassfish(1)--安装并准备开发环境[未登录] 2009-05-17 10:00 Robin

奇怪,我安装后,在 bin 目录下面只有一个 .dll 文件,没有那些 bat 批处理文件,为什么???  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: