BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

EJB 3 学习笔记:GlassFish 入门

Posted on 2009-02-11 18:50 logicgate 阅读(1321) 评论(0)  编辑  收藏

1。下载,安装

电脑上必须预先安装Jdk5 or Jdk6,并且设置JAVA_HOME环境变量。从Sun的网站上下载 GlassFish v2.1 final build,是一个jar文件。下载后运行:

F:\>java -Xmx256m -jar glassfish-installer-v2ur2-b04-windows.jar

 

如果这里不加上-Xmx256m,很有可能会报OutOfMemoryException。这个命令会产生一个名为glassfish的目录。在glassfish目录下运行:F:\glassfish>lib\ant\bin\ant -f setup.xml

如果最后能看到“BUILD SUCCESSFUL”,就说明GlassFish已经安装成功了。GlassFish会建立一个名为“domain1“的域。

 

打开setup.xml文件我们可以看到默认的配置:

<property name="domain.name" value="domain1"/>
<property name="instance.name" value="server"/>
<property name="admin.user" value="admin"/>
<property name="admin.password" value="adminadmin"/>
<property name="admin.port" value="4848"/>
<property name="instance.port" value="8080"/>
<property name="orb.port" value="3700"/>
<property name="imq.port" value="7676"/>
<property name="https.port" value="8181"/>

 如果想自定义domain name, user, password or ports,可以手动修改这个文件后再进行安装。

 

2。启动GlassFish服务器

将%glassfish_home%\bin目录添加到path环境变量中。在任意目录下键入asadmin start-domain即可启动default domain (domain1)。成功启动后在http://localhost:8080/可以看到服务器欢迎页面。

 

3。使用admin console

admin console是一个基于web的服务器管理和配置平台。在浏览器中键入http://localhost:4848就可以看到登陆页面。使用setup.xml中定义的user & password即可登陆。点击左侧树形结构上的节点可以在右侧窗口察看相应的管理项目。

 

Applications: 管理domain中部署的应用。

Application Server -> General:start & stop instance, view log files, JNDI browsing。。。

Application Server -> Adminstrator Password:修改admin console的密码

 

4。GlassFish的基本概念

 

Domain: 域(Domain)是GlassFish的一个核心概念,我们可以为每个GlassFish服务器建立多个域,而域里面又可以包含多种可管理的资源,包括实例、集群及它们各自资源。需要注意的是,一个可管理的资源,例如一个实例,只能专属于一个域。

 

Domain Administrator Server(DAS): 域管理服务器。DAS是GlassFish的一个核心组件,在集群的环境中,每个GlassFish服务器可能会存在多个服务实例 (Instance),DAS本身也是一个符合Java EE5规范的服务实例,主要是为GlassFish提供核心管理的功能。所有对域的管理操作,例如Netbeans IDE以及其他工具的管理请求,都是由DAS分发到各个服务器实例去的,而不是直接连接到各个服务器实例。 对于一些需要多个实例进行操作的管理请求,DAS会将操作请求广播到各个实例上去,所以,当DAS停止运行后,各种对域的管理操作都不能进行,当然,即使 DAS已经停止了运行,域的集群和服务器实例仍然可以正常工作,只要域还在正常运行。

 

Node: 一般来说,一个node(节点)就代表一个独立主机。一个很大的机器可能会分割为多个独立的节点。 节点需要一个轻量级的代理(Node Agent)来对服务器实例进行远程生命周期管理。节点代理主要负责实例的启动,停止以及创建,同时,也承担监视者以及重启失效进程的责任。

 

Server Instance: 服务器实例。 一个实例指的是掌管Java EE 5应用服务器的Java虚拟机。实例间的通信以及和DAS之间的通信是依赖于远程MBean方法的调用的。

 

感觉这和Oracle的RAC架构很相似。我们可以为oracle建立多个database,每一个database可以包含多个instance,Enterprise Grid Control负责管理所有的instance。

 

5。Domain的管理

 

5.1 create domain

 

F:\>asadmin create-domain --adminport 4849 myFirstDomain

成功后在%glassfish_home%\domains下可以看到myFirstDomain目录。asadmin start-domain myFirstDomain后键入http://localhost:4849即可登陆admin console。

 

直接在命令行键入asadmin create-domain可以看到所有可接受的参数。其中adminport和domain name是必需的,否则asadmin会报错。

 

--profile可以为创建的domain指定一个profile。如果没有显示的指定profile,asadmin会使用%glassfish_home%\config\asadminenv.conf中AS_ADMIN_PROFILE定义的缺省profile(developer)。GlassFish提供developer,cluster & enterprise三种profile。GlassFish的admin guide上面说:Do not create an enterprise domain unless you have HADB and the Network Security Services (NSS) keystore。就是说不要随便创建enterprise profile玩。HADB应该是指高可用性数据库,NSS keystore是什么我就不明白了。

 

--domaindir可以指定domain的目录。缺省目录为%glassfish_home%\domains

 

5.2 start & stop & delete & list domain

 

F:\>asadmin start-domain myFirstDomain

F:\>asadmin stop-domain myFirstDomain

如果只有一个domain,则可以省去domain name。

F:\>asadmin delete-domain myFirstDomain

F:\>asadmin list-domains

 

5.3 domain的配置文件

 

%glassfish_home%\domains\%domain_name%\config\domain.xml

对于其中大部分的配置GlassFish支持热部署,无需重启domain。这些配置包括:

- 部署应用和取消部署

- 添加,移除JDBC, JMS, Connector resources and pools

- 改变日志级别

- 修改监控级别

。。。

 

6。与IDE的集成

 

GlassFish与netbean, eclipse都可以方便的集成。比较起来netbean更简单些,毕竟是自家的产品嘛。eclipse还需要先下载一个server adapter。

 

7。部署应用

 

在GlassFish中部署应用有三种方法。下面以一个sample.war为例说明这三种方法。部署EJB module或者enterprise application的步骤大致相同。

 

7.1 自动部署

 

在%glassfish_home%\domains\%domain_name%下有一个autodeploy目录。把我的sample.war直接copy到这个目录下,大概两秒钟后出现一个叫sample.war_deployed的文件。这说明部署成功了。在admin console的Applications -> Web Applications下可以看到这个应用。如果要取消部署,把sample.war从autodeploy中删除即可。

 

这种部署方式最简单直接。但缺点是只支持本地部署,只能进行文件部署(jar, war, ear...),不能进行文件夹部署(解压sample.war后把整个文件夹copy到autodeploy下部署无效)。而且部署的文件只能位于autodeploy下面。

 

7.2 使用admin console部署

 

在admin console的Applications -> Web Applications中点Deploy按钮可以进入部署页面。

 

这里提供了两种选项。一种是Packaged file to be uploaded to the server,就是上传打包文件部署。使用这个选项可以把本机的应用部署到远程服务器上。另外一种是Local packaged file or directory that is accessible from the Application Server。就是说使用本地打包文件或者文件夹进行部署。文件夹部署方式非常方便本机开发调试。


比如说我在tomcat的webapps下有一个sample文件夹,我可以直接把这个文件夹部署到GlassFish中而无需进行打包。部署后改动sample中的jsp文件,刷新浏览器即可看到改变,不用重新部署。

 

7.3 使用asadmin命令部署

 

部署:

asadmin deploy --port 4849 --user admin F:\apache-tomcat-5.5.27\webapps\sample.war

取消部署:

asadmin undeploy --port 4849 --user admin sample

更详细的命令可以通过asadmin deploy --help获得。

 

好了,入门篇就写到这里。等有机会深入研究研究,再写进阶篇,高级篇,哈哈。



已有 0 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐