glassfish初探
2008年10月08日 星期三 17:37
相信做java的web开发都应该对tomcat事再熟悉不过了,这个web服务器简单,有效,但是随着技术的发展,尤其是tomcat对修改java后的重新加载支持不够,而且因为是轻量级服务器,没有更多的安全性,可靠性,以及J2EE方面的考虑,已经越来越不适应现今开发环境,所以我们需要找一款开源的,更强大的web应用服务器,如此一来,glassfish横空出世。
glassfish是sun主导的一款开源J2EEweb服务器,具体情况请访问 https://glassfish.dev.java.net 本文重点介绍如何安装glassfish,运行glassfish,以及部署web应用程序到glassfish中,最后还专注于在glassfish中使用oracle的数据源 1、安装与运行(windows的安装,其他暂时没有做) 前提:需要安装jdk1.5,在此不累述 首先,在 https://glassfish.dev.java.net上下载glassfish,一般有两个版本,一个是标准版,一个是多语言版,根据你的实际需要,下载相应版本 其次,将下载下来的jar包放置在一个想要安装的位置,如D盘根目录下,在命令行模式下运行到jar包的所在目录,运行命令:java -Xmx256m -jar filename.jar(注: filename.jar为glassfish-**-**-**.jar包 ),一会儿会弹出一个对话框,这个时候可能要拖动一下上面的说明,表示你已经知道了(也许是过阵子时间),accept按钮允许点击,之后就会开始安装在jar包所在目录下 再次,安装完之后,还需要在glassfish中添加domain,就如同websphere要加appserver一样,在glassfish的根目录下,有一个setup.xml,打开该文件,编辑重要信息: <property name="domain.name" value="domain1"/><!-- 域名称,默认为domain1 --> <property name="admin.user" value="admin"/><!-- 控制管理台用户 --> <property name="admin.password" value="adminadmin"/><!-- 控制管理台用户密码 --> <property name="admin.port" value="4848"/><!-- 控制管理台http端口 --> <property name="instance.port" value="8080"/><!-- web应用http端口 --> <property name="https.port" value="8181"/><!-- web应用https端口 --> 根据各自机器的实际情况进行设置,或不做改动,完了,需使用ant来生成domain,如机器上没有安装ant,可使用glassfish自带的ant来进行安装(%{glassfish}/lib/ant),执行命令:ant -f setup.xml(如使用glassfish自带的ant,则lib/bin/ant -f setup.xml),仔细查看执行过程是否安装成功,本人在安装时,就因为端口设置冲突而安装失败,但是build的结果为successful,所以得注意安装过程中出现的文字信息,成功后,会在glassfish的根目录下出现个domains的目录 到此,安装已经完成,要启动domain1,可以如下操作,命令行到glassfish的bin目录下,执行:asadmin start-domain domain1(domain1为域名称),停止则为asadmin stop-domain domain1 2、部署web应用程序 前提:有一个完整web项目的war包,打包方式为jar cvf ***.war ./ 启动glassfish之后,进入到某个域的后台管理页面,输入用户名和密码,进入主页。 左栏会有一些任务栏,应用程序->web应用程序->部署,选择需要部署的war文件,输入应用程序名称以及上下文根,选择好war包时,会默认将包名设置为这两个输入项,可自行更改,如果需要web项目运行在根目录下,直接在上下文根输入/即可,其他选项默认即可,点击确定,如果失败,则会提示错误保存在日志文件中,这个时候需要到domain的logs中自行查找错误原因。 部署成功后,即可访问该web应用程序了,可点击web应用程序的取消部署删除该web应用,也可以停止该web应用,启用该web应用。 3、数据源 这个地方花费了我好一阵时间 前提:已经安装oracle(其他应该类似,但是没有用过,不敢保证),并有相应的数据库,用户名和密码等 登录某个域的后台管理页面 左栏,资源->JDBC->连接池->新建,输入连接池名称,选择类型为javax.sql.ConnectionPoolDataSource,数据库供应商选择oracle,下一步,上面的输入都可以使用默认设置,在其他属性中,输入以下各个属性的对应值: DatabaseName(数据库名) User(数据库用户名) Password(数据库用户密码) PortNumber(数据库端口,oracle的端口默认为1521) URL(数据库访问的地址,如jdbc:oracle:thin:@localhost:1521:db) 其他可以不用设置,完成,即生产一个连接池 然后,将oracle的数据库访问jar包复制到domain/lib/ext下 来到新创建的连接池的内容显示页,点击ping,如果ping成功,则连接池已经设置成功,否则依次排查故障 接下来就要设置数据源 资源->JDBC->JDBC资源,输入JNDI 名称,一般为jdbc/****(*为具体名称),选择池名称为刚刚新建的连接池,点击确定,即可 创建完之后,需要在web程序中使用,需要在web.xml中加入: <resource-ref> <description>oracle Connection Pool</description> <res-ref-name>jdbc/****</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref> 然后在java程序中,加入如下代码来使用数据源: Context ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("jdbc/****"); Connction con = ds.getConnection(); 接下来就简单,直接用这个con就可以了。 时间仓促,而且还是刚刚接触,glassfish的其他内容还未能涉及,抛砖引玉吧 |