2007-06-07
在Glassfish上部署web应用
关键字: Glassfish, JSF, Java EE, 部署, 数据源, 持久化单元
一,开发工具的选择
Java EE,或者是JSF应用开发,Netbeans和Glassfish是最好的搭配选择,前者对于后者有非常好的支持
但要注意netbeans的版本,5.5是不支持glassfish v2的
而netbeans6还很不稳定,所以现阶段最好的版本是netbeans5.5.1。
关于Netbeans下开发Java EE应用,官方有文档介绍:Java EE 应用程序相关教程,这里主要介绍一下生产环境中web应用在glassfish下的部署和配置
二,下载安装Glassfish V2,
1)下载Glassfish v2并解压缩
下载完毕後,执行以下命令
java -Xmx256m -jar glassfish_filename.jar
点击接受弹出的协议后(这里sun比较无聊啊,所有软件都是,明明一个普通压缩包,非压成jar让你看一下协议才行), glassfish会解压到一个名为glassfish的目录里
2) 修改端口
glassfish是通过ant来安装的,安装脚本在setup.xml下,在里面可以修改一些配置,比如端口等等
在setup.xml中主要有以下设置:
根据需要修改以上设置,执行:ant -f setup.xml,如果系统没有安装ant,在glassfish\lib\ant下有一个ant1.6版
安装结束后,进入glassfish/bin下,在控制台执行下面命令启动glassfish
asadmin start-domain domain1 // domain1是上面设置的domain.name,系统默认domain1
启动结束后,进入http://localhost:8080测试是否已经正确启动
asadmin stop-domain domain1停止服务器
三,部署web应用
有三种方式,可以直接将war或ear放在glassfish/domain/autodeploy目录下,glassfish启动后会自动部署
第二是通过命令asadmin deploy部署应用, 另外 asadmin updeploy 卸载应用
通过asadmin deploy --help 和 asadmin undeploy --help 获得更多帮助
第三是通过我推荐的方式,通过glassfish管理控制台
进入http://localhost:4848,默认用户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应用,就会正常运行了。
Java EE,或者是JSF应用开发,Netbeans和Glassfish是最好的搭配选择,前者对于后者有非常好的支持
但要注意netbeans的版本,5.5是不支持glassfish v2的
而netbeans6还很不稳定,所以现阶段最好的版本是netbeans5.5.1。
关于Netbeans下开发Java EE应用,官方有文档介绍:Java EE 应用程序相关教程,这里主要介绍一下生产环境中web应用在glassfish下的部署和配置
二,下载安装Glassfish V2,
1)下载Glassfish v2并解压缩
下载完毕後,执行以下命令
java -Xmx256m -jar glassfish_filename.jar
点击接受弹出的协议后(这里sun比较无聊啊,所有软件都是,明明一个普通压缩包,非压成jar让你看一下协议才行), glassfish会解压到一个名为glassfish的目录里
2) 修改端口
glassfish是通过ant来安装的,安装脚本在setup.xml下,在里面可以修改一些配置,比如端口等等
在setup.xml中主要有以下设置:
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"/> 实例端口,也就是通过这个端口来访问web应用,比如http://localhost:8080
- <property name="orb.port" value="3700"/>
- <property name="imq.port" value="7676"/>
- <property name="https.port" value="8181"/> https端口
根据需要修改以上设置,执行:ant -f setup.xml,如果系统没有安装ant,在glassfish\lib\ant下有一个ant1.6版
安装结束后,进入glassfish/bin下,在控制台执行下面命令启动glassfish
asadmin start-domain domain1 // domain1是上面设置的domain.name,系统默认domain1
启动结束后,进入http://localhost:8080测试是否已经正确启动
asadmin stop-domain domain1停止服务器
三,部署web应用
有三种方式,可以直接将war或ear放在glassfish/domain/autodeploy目录下,glassfish启动后会自动部署
第二是通过命令asadmin deploy部署应用, 另外 asadmin updeploy 卸载应用
通过asadmin deploy --help 和 asadmin undeploy --help 获得更多帮助
第三是通过我推荐的方式,通过glassfish管理控制台
进入http://localhost:4848,默认用户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应用,就会正常运行了。
评论
unika_ly12
2008-06-24
刚装了个glassfish试了试,在成功部署了一个应用后,我想停掉glassfish,可输入asadmin stop-domain domain1 后输出“域 (domain1) 未运行”,请问怎么回事?我未改过域名
剑 事
2008-05-20
v 1正常
剑 事
2008-05-20
发现 glassfish v2 和 v2 update2
有同样个问题
sendRedirect 会有这样问题
http://www.javaeye.com/topic/194033
不知是否有同样问题
有同样个问题
sendRedirect 会有这样问题
http://www.javaeye.com/topic/194033
不知是否有同样问题
stoneson
2008-05-12
运行好慢啊。
jackytang520
2008-05-02
我在安装的时候试了改下密码,把adminadmin改成admin后安装不成功,少了个domain1文件夹,安装时不能改密码?
sniciq
2008-04-24
可以不用打包的,发布的时候location选择Local packaged file or directory that is accessible from the Application Server 模式,就OK了,它和weblogic用法差不多
martin_w_f
2008-02-22
怎么配置JNDI啊?
fangzhouxing
2007-11-18
我已经找到象Tomcat那样直接扔文件夹而且不要启动glassfish的方法,请参见:
http://www.techjini.com/blog/2007/10/23/glassfish-auto-deployment-and-hot-deployment
http://www.techjini.com/blog/2007/10/23/glassfish-auto-deployment-and-hot-deployment
fangzhouxing
2007-11-16
部署以后,版本升级后(如修改和增加.class)要重新启动glassfish吗?
另外,我也很想知道:
不能象tomcat那样,直接扔文件夹在里面吗?
另外,我也很想知道:
不能象tomcat那样,直接扔文件夹在里面吗?
msino
2007-08-26
请问下:
我一路安装正常,并且http://localhost:8080显示了启动画面,但是http://localhost:4848显示的是空白页,没有改这个端口,有碰到过这种情况的吗?
我一路安装正常,并且http://localhost:8080显示了启动画面,但是http://localhost:4848显示的是空白页,没有改这个端口,有碰到过这种情况的吗?
longying23
2007-07-26
不能象tomcat那样,直接扔文件夹在里面吗
一定要打包成war?
一定要打包成war?
发表评论
- 浏览: 111301 次
- 性别:

- 来自: 合肥

- 详细资料
搜索本博客
我的相册
我的P8
共 8 张
共 8 张
最近加入圈子
最新评论
-
JPA + Hibernate 3 CRUD ...
引用 但也有个缺点就是这样的Event-listener是脱离主容器(比如Spr ...
-- by lsy -
JPA + Hibernate 3 CRUD ...
问题: 新值能够得到但怎么也得不到原值。是不是和数据库有关系呀!!请“Jeffr ...
-- by 520zhangjinhui -
在Glassfish上部署web应 ...
刚装了个glassfish试了试,在成功部署了一个应用后,我想停掉glassfi ...
-- by unika_ly12 -
JPA + Hibernate 3 CRUD ...
guoxu1231 写道原生的Hibernate Interceptor 优点: ...
-- by JeffreyHsu -
JPA + Hibernate 3 CRUD ...
原生的Hibernate Interceptor 优点:可以在hibernate ...
-- by guoxu1231






评论排行榜