1。下载,安装
电脑上必须预先安装Jdk5 or Jdk6,并且设置JAVA_HOME环境变量。从Sun的网站上下载GlassFish v2.1 final build,是一个jar文件。下载后运行:
F:>java -Xmx256m -jarglassfish-installer-v2ur2-b04-windows.jar
如果这里不加上-Xmx256m,很有可能会报OutOfMemoryException。这个命令会产生一个名为glassfish的目录。在glassfish目录下运行:F:glassfish>libantbinant-f setup.xml
如果最后能看到“BUILDSUCCESSFUL”,就说明GlassFish已经安装成功了。GlassFish会建立一个名为“domain1“的域。
打开setup.xml文件我们可以看到默认的配置:
Xml代码 " quality="high">- <propertyname="domain.name"value="domain1"/>
- <propertyname="instance.name"value="server"/>
- <propertyname="admin.user"value="admin"/>
- <propertyname="admin.password"value="adminadmin"/>
- <propertyname="admin.port"value="4848"/>
- <propertyname="instance.port"value="8080"/>
- <propertyname="orb.port"value="3700"/>
- <propertyname="imq.port"value="7676"/>
- <propertyname="https.port"value="8181"/>
<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 orports,可以手动修改这个文件后再进行安装。
2。启动GlassFish服务器
将%glassfish_home%bin目录添加到path环境变量中。在任意目录下键入asadminstart-domain即可启动default domain(domain1)。成功启动后在http://localhost:8080/可以看到服务器欢迎页面。
3。使用admin console
adminconsole是一个基于web的服务器管理和配置平台。在浏览器中键入http://localhost:4848就可以看到登陆页面。使用setup.xml中定义的user &password即可登陆。点击左侧树形结构上的节点可以在右侧窗口察看相应的管理项目。
Applications: 管理domain中部署的应用。
Application Server -> General:start& stop instance, view log files, JNDIbrowsing。。。
Application Server -> AdminstratorPassword:修改admin console的密码
4。GlassFish的基本概念
Domain:域(Domain)是GlassFish的一个核心概念,我们可以为每个GlassFish服务器建立多个域,而域里面又可以包含多种可管理的资源,包括实例、集群及它们各自资源。需要注意的是,一个可管理的资源,例如一个实例,只能专属于一个域。
Domain Administrator Server(DAS):域管理服务器。DAS是GlassFish的一个核心组件,在集群的环境中,每个GlassFish服务器可能会存在多个服务实例(Instance),DAS本身也是一个符合JavaEE5规范的服务实例,主要是为GlassFish提供核心管理的功能。所有对域的管理操作,例如NetbeansIDE以及其他工具的管理请求,都是由DAS分发到各个服务器实例去的,而不是直接连接到各个服务器实例。对于一些需要多个实例进行操作的管理请求,DAS会将操作请求广播到各个实例上去,所以,当DAS停止运行后,各种对域的管理操作都不能进行,当然,即使DAS已经停止了运行,域的集群和服务器实例仍然可以正常工作,只要域还在正常运行。
Node:一般来说,一个node(节点)就代表一个独立主机。一个很大的机器可能会分割为多个独立的节点。 节点需要一个轻量级的代理(NodeAgent)来对服务器实例进行远程生命周期管理。节点代理主要负责实例的启动,停止以及创建,同时,也承担监视者以及重启失效进程的责任。
Server Instance: 服务器实例。 一个实例指的是掌管Java EE5应用服务器的Java虚拟机。实例间的通信以及和DAS之间的通信是依赖于远程MBean方法的调用的。
感觉这和Oracle的RAC架构很相似。我们可以为oracle建立多个database,每一个database可以包含多个instance,EnterpriseGrid Control负责管理所有的instance。
5。Domain的管理
5.1 create domain
F:>asadmin create-domain --adminport 4849myFirstDomain
成功后在%glassfish_home%domains下可以看到myFirstDomain目录。asadminstart-domain myFirstDomain后键入http://localhost:4849即可登陆adminconsole。
直接在命令行键入asadmin create-domain可以看到所有可接受的参数。其中adminport和domainname是必需的,否则asadmin会报错。
--profile可以为创建的domain指定一个profile。如果没有显示的指定profile,asadmin会使用%glassfish_home%configasadminenv.conf中AS_ADMIN_PROFILE定义的缺省profile(developer)。GlassFish提供developer,cluster&enterprise三种profile。GlassFish的admin guide上面说:Donot create an enterprise domain unless you have HADB and theNetwork Security Services (NSS) keystore。就是说不要随便创建enterpriseprofile玩。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%configdomain.xml
对于其中大部分的配置GlassFish支持热部署,无需重启domain。这些配置包括:
- 部署应用和取消部署
- 添加,移除JDBC, JMS, Connector resources and pools
- 改变日志级别
- 修改监控级别
。。。
6。与IDE的集成
GlassFish与netbean,eclipse都可以方便的集成。比较起来netbean更简单些,毕竟是自家的产品嘛。eclipse还需要先下载一个serveradapter。
7。部署应用
在GlassFish中部署应用有三种方法。下面以一个sample.war为例说明这三种方法。部署EJBmodule或者enterprise application的步骤大致相同。
7.1 自动部署
在%glassfish_home%domains%domain_name%下有一个autodeploy目录。把我的sample.war直接copy到这个目录下,大概两秒钟后出现一个叫sample.war_deployed的文件。这说明部署成功了。在adminconsole的Applications -> WebApplications下可以看到这个应用。如果要取消部署,把sample.war从autodeploy中删除即可。
这种部署方式最简单直接。但缺点是只支持本地部署,只能进行文件部署(jar, war,ear...),不能进行文件夹部署(解压sample.war后把整个文件夹copy到autodeploy下部署无效)。而且部署的文件只能位于autodeploy下面。
7.2 使用admin console部署
在admin console的Applications -> WebApplications中点Deploy按钮可以进入部署页面。
这里提供了两种选项。一种是Packaged file to be uploaded to theserver,就是上传打包文件部署。使用这个选项可以把本机的应用部署到远程服务器上。另外一种是Local packaged fileor directory that is accessible from the ApplicationServer。就是说使用本地打包文件或者文件夹进行部署。文件夹部署方式非常方便本机开发调试。
比如说我在tomcat的webapps下有一个sample文件夹,我可以直接把这个文件夹部署到GlassFish中而无需进行打包。部署后改动sample中的jsp文件,刷新浏览器即可看到改变,不用重新部署。
7.3 使用asadmin命令部署
部署:
asadmin deploy --port 4849 --user adminF:apache-tomcat-5.5.27webappssample.war
取消部署:
asadmin undeploy --port 4849 --user admin sample
更详细的命令可以通过asadmin deploy --help获得。