关键字: Glassfish, JSF, Java EE, Ant, Netbeans, 部署, 数据源, 持久化
一,开发工具的选择
Java EE,或者是JSF应用开发,Netbeans和Glassfish是最好的搭配选择,前者对于后者有非常好的支持,但要注意Netbeans的版本.
关于Netbeans下开发Java EE应用,官方有文档介绍:Java EE 应用程序相关教程.
这里主要介绍一下生产环境中web应用在Glassfish下的部署和配置
1)下载Glassfish v2并解压缩
下载完後,执行以下命令(首先你得安装有jdk1.5或6.0环境)
java -Xmx256m -jar glassfish_filename.jar
点击接受弹出的协议后,glassfish会解压到一个名为glassfish的目录里(在你的cmd的当前目录下)
2) 修改端口
glassfish是通过ant来安装的,安装脚本在setup.xml下,在里面可以修改一些配置,比如端口等等
在setup.xml中主要有以下设置:
xml 代码
<property value="domain1"/> 域名
<property value="server"/>
<property value="admin"/> 管理员用户名
<property value="adminadmin"/> 管理员密码
<property value="4848"/> 管理平台端口
<property value="8080"/> 实例端口,也就是通过这个端口来访问web应用,比如
<property value="3700"/>
<property value="7676"/>
<property value="8181"/> https端口
根据需要修改以上设置
接下来用ant安装glassfish
如果你没有安装ant,在glassfish/lib/ant下有一个ant1.6版
得先将Ant加入环境变量
新建环境变量 ANT_HOME:/lib/ant
Path:%ANT_HOME%/bin;%ANT_HOME%/lib
然后执行:
ant -f setup.xml
进行安装
安装结束后,进入glassfish/bin下,在控制台执行下面命令启动glassfish
运行asadmin.bat
asadmin start-domain domain1 // domain1是上面设置的domain.name,系统默认domain1
asadmin stop-domain domain1 //停止服务器
启动后,进入 测试是否已经正确启动
三,部署web应用
有三种方式
第一可以直接将war或ear放在glassfish/domain/autodeploy目录下,glassfish启动后会自动部署
第二是通过命令asadmin deploy部署应用, 通过命令asadmin updeploy 卸载应用,你可以通过asadmin deploy --help 和 asadmin undeploy --help 获得更多帮助
第三是通过我推荐的方式,通过glassfish管理控制台 进入
默认用户admin,密码adminadmin
打开後看到如下界面:
进入左侧菜单, Applications -> Web Applications,在列表中可以看到已经部署的应用,如要部署新应用,点击deploy按钮,选择本地的war,设定好context path,点击OK,无论部署成功或失败,都会看到相应的信息提示
注:通过这种方式,可以进行远程部署,只要打开目标服务器上的管理控制台,选择一个本地的war,就可以快速的部署到远程服务器上,非常方便,这也是推荐的原因
对于EJB应用,在Enterprise Applications下部署,方法同上
四,配置jdbc数据源
对于Java EE应用,经常需要事先设定数据源,否则部署时会报javax.naming.NameNotFoundException
配置方法是进入Resources -> JDBC,会看到JDBC Resources和Connection pools
先设定Connection pools,以MySql为例,点击New,命名为MySqlPools,ResourceType选择javax.sql.ConnectionPoolDataSource,Database vendor肯定选择mysql
然后点击next进入下一页面
最主要的是设定Additional Properties,也就是jdbc连接配置,设定好url, user, password,其他的保持默认值,也可以根据需要自己添加属性
设定好连接池后,接着设定JDBC Resources,新建一个JDBC,名称要和你的web应用里的持久化单元采用的数据源的名称一致
然后再次部署web应用,就会正常运行了
五,在Eclipse中集成Glassfish
然后也可以在eclipse中部署web应用了