- 浏览: 5160533 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
silence19841230:
先拿走看看
SpringBoot2.0开发WebSocket应用完整示例 -
wallimn:
masuweng 写道发下源码下载地址吧!三个相关文件打了个包 ...
SpringBoot2.0开发WebSocket应用完整示例 -
masuweng:
发下源码下载地址吧!
SpringBoot2.0开发WebSocket应用完整示例 -
masuweng:
SpringBoot2.0开发WebSocket应用完整示例 -
wallimn:
水淼火 写道你好,我使用以后,图标不显示,应该怎么引用呢,谢谢 ...
前端框架iviewui使用示例之菜单+多Tab页布局
关键字: glassfish
1. 背景
用了很多年的Tomcat, 无论开发环境还是生产环境, 应该说, 大家对它还是基本满意的.
不过, 也不是一点问题没有. 从开发人员的角度来说, Tomcat主要的缺点就是较弱的热部署
(hot deploy)能力. 修改一个Java类, 保存后, Tomcat会重新加载这个类, 但不久就要重
新启动Tomcat才能继续开发. 在企业关键应用的场景下, 若发生急迫的程序缺陷更正, 让众多的用户停止手头的工作, 等待服务器重新启动, 显然十分不便.
类似RubyOnRails的技术框架, 其方便之处就是脚本语言不要编译, 保存后直接可以使用.
Java社区显然看到了这个问题, GlassFish v2 的热部署能力就是其主要的一个受大家欢迎的
特性. 这也是我们要用 GlassFish v2 替换 Tomcat 5.x 的主要理由.
2. 使用环境
本文假设你使用下面所述的开发环境.
(1) JDK 1.5 或 1.6
(2) Eclipse IDE for Java EE Developers (3.3.1.1 M20071023-1652)
(3) 使用 com.sysdeo.eclipse.tomcat_3.2.1 插件
如果你没有使用 Eclipse 3.3.1.1 Java EE 版本, 而是正在使用其他版本, 也不影响本文所述的所有操作和效果, 只是不能借助Eclipse 启动和停止 GlassFish v2, 只能自己通过命令行进行操作.
有关用 Eclipse 3.3.1.1 Java EE 版本操作 GlassFish v2 的详细说明, 请参见 Eclipse 3.3 and GlassFish Java EE 5 integration.
3. 下载并安装 GlassFish v2
这方面的资料已经很容易从网上找到, 比较好的文章如下:
(1) 在Glassfish上部署web应用
(2) Glassfish初试
(3) 从tomcat到glashfish(glassfish的安装启动笔记)
4. 创建 Tomcat 项目
相信你一定也知道如何创建 Tomcat 项目. 本文假设你创建的 Tomcat 项目:
(1) 位于 D:/Sample 目录.
(2) Context name 为 Sample.
其他采用默认设置.
5. 为测试 GlassFish v2 的热部署能力, 创建首页JSP和Servlet Java类.
第1步: 在根目录中创建 index.jsp 文件
第2步: 在 WEB-INF\src 中, 创建一个简单的 servlet 类 SampleServlet.java,
第3步: 配置web.xml文件.
完整的Sample项目, 请参见附件.
6. 什么是 GlassFish v2 的目录部署?
用Tomcat开发时, JSP/HTML/JS/CSS 等文件, 都是修改后保存, 刷新浏览器就可以使用.
为了使 GlassFish v2 达到同样的效果, 需要使用其目录部署(directory deployment)特性.
这个特性不太容易找, 因为使用象GlassFish这样的全功能应用服务器的开发人员,习惯了
"编辑、编译、部署、运行"这样的步骤. 一开始, 我按照 Eclipse 3.3 and GlassFish Java EE 5 integration.
一文的指引, 发现修改JSP文件后,仍然要经历上面的部署过程. 虽然Eclipse会通过自动检测
文件版本的变化, 触发Ant任务实现部署, 但仍然很浪费时间. 我们需要找到跳过"部署"的方法.
在GlassFish官方论坛上发了几个帖子, 答复者的回帖没有起到什么作用, 但通过搜索论坛基本
知道这个问题已经得到了解决.
下面的文章引导我朝着正确的方向前进了一大步(非常感谢该文作者):
GlassFish Auto Deployment and Hot Deployment
关于目录部署的详细说明,参见:
Sun Java System Application Server Platform Edition 9.0 Application Deployment Guide
Chapter 1 中 Deployment for Development 一节
7. GlassFish v2 的目录部署实战
第1步: 启动 GlassFish v2.
第2步: 部署 Sample 项目到 GlassFish v2, DOS窗口下执行命令:
GLASS_FISH_HOME/bin/asadmin deploydir D:/Sample
其中 GLASS_FISH_HOME 是 GlassFish 的安装目录, 命令执行完毕后,可以看到成功部署信息.
第3步: 打开浏览器, 输入http://localhost:8080/Sample/index.jsp, 看到页面内容.
第4步: 打开浏览器, 输入 http://localhost:8080/Sample/servlet/Sample, 看到页面内容.
8. 体验 GlassFish v2 的热部署特性
第1步: 修改 index.jsp 文件内容, 保存后, 刷新浏览器, 你就能马上看到新的内容.
( http://localhost:8080/Sample/index.jsp)
第2步: 修改 SampleServlet.java, 保存后, 等待片刻, Eclipse 已经自动编译这个类, 但 GlassFish v2 控制台中没有任何提示, 刷新浏览器, 看不到新的内容.
( http://localhost:8080/Sample/servlet/Sample)
第3步: 现在, 在 Sample 项目根目录中创建文件名为".reload"的文件(内容为空).
第4步: 观察GlassFish v2 控制台, 可以看到重新加载信息,刷新浏览器
(http://localhost:8080/Sample/servlet/Sample)
到了新的内容.
第5步: 再次修改 SampleServlet.java 的内容, 保存后, 遇到和第2步同样的问题.
第6步: 再次打开 .reload 文件, 输入任意内容, 然后保存.
第7步: 再次出现与第4步同样的效果.
总结上述操作, GlassFish v2 对于非Java类的加载, 达到了和Tomcat同样的效果, 但Java类的
加载, 需要通过 .reload 文件的时间戳来控制. 这种做法对开发有好处, 在调试改错时, 可以修改多个 Java 类文件, 然后让 GlassFish v2 一次加载全部修过的类.
9. 自动化 .reload 文件时间戳刷新
上一节中, 手工打开 .reload 文件, 通过修改其内容刷新其时间戳, 这种做法太麻烦.
在 unix/linux 平台下, 通过命令 touch 刷新 .reload 文件的时间戳. 在 Window 平台, 也有
人实现了 touch. 我在 CodeProject 网站找到一个 touch.exe: Touch for Windows - The Code Project - Free Tools,很好用, 并且可以集成到 Eclipse 的工具条按钮中来执行 touch 命令(touch.exe 已经包括在附件中).
第1步: 拷贝下载的 touch.exe 到 Sample 项目根目录.
第2步: 在 Eclipse 下, 选择 Run > External Tools > Open External Tools Dialog.
第3步: 选中左侧 Program 节点, 右击, 选择New菜单项.
第4步: 在右侧出现的对话框中, 填入下面的内容
Name: SampleTouch
Main[页面]
Localtion: ${workspace_loc:/Sample/touch.exe}
Working Directory: ${workspace_loc:/Sample}
Arguments: .reload
Common[页面]
Display in favorites menu: 选中External Tools
保存后, 你可以在Eclipse的Run工具条按钮中看到新创建的项.
10. 结语
用 GlassFish v2 可以完全替换 Tomcat 5.x, 在开发中它保留了 Tomcat 好的特性的
同时,给我们带来了强壮的热部署功能, 显著地提高了开发效率.
感谢GlassFish v2, 感谢为之付出心血的Java社区成员, 是他们让我们感受到了技术
进步的喜悦.
1. 背景
用了很多年的Tomcat, 无论开发环境还是生产环境, 应该说, 大家对它还是基本满意的.
不过, 也不是一点问题没有. 从开发人员的角度来说, Tomcat主要的缺点就是较弱的热部署
(hot deploy)能力. 修改一个Java类, 保存后, Tomcat会重新加载这个类, 但不久就要重
新启动Tomcat才能继续开发. 在企业关键应用的场景下, 若发生急迫的程序缺陷更正, 让众多的用户停止手头的工作, 等待服务器重新启动, 显然十分不便.
类似RubyOnRails的技术框架, 其方便之处就是脚本语言不要编译, 保存后直接可以使用.
Java社区显然看到了这个问题, GlassFish v2 的热部署能力就是其主要的一个受大家欢迎的
特性. 这也是我们要用 GlassFish v2 替换 Tomcat 5.x 的主要理由.
2. 使用环境
本文假设你使用下面所述的开发环境.
(1) JDK 1.5 或 1.6
(2) Eclipse IDE for Java EE Developers (3.3.1.1 M20071023-1652)
(3) 使用 com.sysdeo.eclipse.tomcat_3.2.1 插件
如果你没有使用 Eclipse 3.3.1.1 Java EE 版本, 而是正在使用其他版本, 也不影响本文所述的所有操作和效果, 只是不能借助Eclipse 启动和停止 GlassFish v2, 只能自己通过命令行进行操作.
有关用 Eclipse 3.3.1.1 Java EE 版本操作 GlassFish v2 的详细说明, 请参见 Eclipse 3.3 and GlassFish Java EE 5 integration.
3. 下载并安装 GlassFish v2
这方面的资料已经很容易从网上找到, 比较好的文章如下:
(1) 在Glassfish上部署web应用
(2) Glassfish初试
(3) 从tomcat到glashfish(glassfish的安装启动笔记)
4. 创建 Tomcat 项目
相信你一定也知道如何创建 Tomcat 项目. 本文假设你创建的 Tomcat 项目:
(1) 位于 D:/Sample 目录.
(2) Context name 为 Sample.
其他采用默认设置.
5. 为测试 GlassFish v2 的热部署能力, 创建首页JSP和Servlet Java类.
第1步: 在根目录中创建 index.jsp 文件
第2步: 在 WEB-INF\src 中, 创建一个简单的 servlet 类 SampleServlet.java,
第3步: 配置web.xml文件.
完整的Sample项目, 请参见附件.
6. 什么是 GlassFish v2 的目录部署?
用Tomcat开发时, JSP/HTML/JS/CSS 等文件, 都是修改后保存, 刷新浏览器就可以使用.
为了使 GlassFish v2 达到同样的效果, 需要使用其目录部署(directory deployment)特性.
这个特性不太容易找, 因为使用象GlassFish这样的全功能应用服务器的开发人员,习惯了
"编辑、编译、部署、运行"这样的步骤. 一开始, 我按照 Eclipse 3.3 and GlassFish Java EE 5 integration.
一文的指引, 发现修改JSP文件后,仍然要经历上面的部署过程. 虽然Eclipse会通过自动检测
文件版本的变化, 触发Ant任务实现部署, 但仍然很浪费时间. 我们需要找到跳过"部署"的方法.
在GlassFish官方论坛上发了几个帖子, 答复者的回帖没有起到什么作用, 但通过搜索论坛基本
知道这个问题已经得到了解决.
下面的文章引导我朝着正确的方向前进了一大步(非常感谢该文作者):
GlassFish Auto Deployment and Hot Deployment
关于目录部署的详细说明,参见:
Sun Java System Application Server Platform Edition 9.0 Application Deployment Guide
Chapter 1 中 Deployment for Development 一节
7. GlassFish v2 的目录部署实战
第1步: 启动 GlassFish v2.
第2步: 部署 Sample 项目到 GlassFish v2, DOS窗口下执行命令:
GLASS_FISH_HOME/bin/asadmin deploydir D:/Sample
其中 GLASS_FISH_HOME 是 GlassFish 的安装目录, 命令执行完毕后,可以看到成功部署信息.
第3步: 打开浏览器, 输入http://localhost:8080/Sample/index.jsp, 看到页面内容.
第4步: 打开浏览器, 输入 http://localhost:8080/Sample/servlet/Sample, 看到页面内容.
8. 体验 GlassFish v2 的热部署特性
第1步: 修改 index.jsp 文件内容, 保存后, 刷新浏览器, 你就能马上看到新的内容.
( http://localhost:8080/Sample/index.jsp)
第2步: 修改 SampleServlet.java, 保存后, 等待片刻, Eclipse 已经自动编译这个类, 但 GlassFish v2 控制台中没有任何提示, 刷新浏览器, 看不到新的内容.
( http://localhost:8080/Sample/servlet/Sample)
第3步: 现在, 在 Sample 项目根目录中创建文件名为".reload"的文件(内容为空).
第4步: 观察GlassFish v2 控制台, 可以看到重新加载信息,刷新浏览器
(http://localhost:8080/Sample/servlet/Sample)
到了新的内容.
第5步: 再次修改 SampleServlet.java 的内容, 保存后, 遇到和第2步同样的问题.
第6步: 再次打开 .reload 文件, 输入任意内容, 然后保存.
第7步: 再次出现与第4步同样的效果.
总结上述操作, GlassFish v2 对于非Java类的加载, 达到了和Tomcat同样的效果, 但Java类的
加载, 需要通过 .reload 文件的时间戳来控制. 这种做法对开发有好处, 在调试改错时, 可以修改多个 Java 类文件, 然后让 GlassFish v2 一次加载全部修过的类.
9. 自动化 .reload 文件时间戳刷新
上一节中, 手工打开 .reload 文件, 通过修改其内容刷新其时间戳, 这种做法太麻烦.
在 unix/linux 平台下, 通过命令 touch 刷新 .reload 文件的时间戳. 在 Window 平台, 也有
人实现了 touch. 我在 CodeProject 网站找到一个 touch.exe: Touch for Windows - The Code Project - Free Tools,很好用, 并且可以集成到 Eclipse 的工具条按钮中来执行 touch 命令(touch.exe 已经包括在附件中).
第1步: 拷贝下载的 touch.exe 到 Sample 项目根目录.
第2步: 在 Eclipse 下, 选择 Run > External Tools > Open External Tools Dialog.
第3步: 选中左侧 Program 节点, 右击, 选择New菜单项.
第4步: 在右侧出现的对话框中, 填入下面的内容
Name: SampleTouch
Main[页面]
Localtion: ${workspace_loc:/Sample/touch.exe}
Working Directory: ${workspace_loc:/Sample}
Arguments: .reload
Common[页面]
Display in favorites menu: 选中External Tools
保存后, 你可以在Eclipse的Run工具条按钮中看到新创建的项.
10. 结语
用 GlassFish v2 可以完全替换 Tomcat 5.x, 在开发中它保留了 Tomcat 好的特性的
同时,给我们带来了强壮的热部署功能, 显著地提高了开发效率.
感谢GlassFish v2, 感谢为之付出心血的Java社区成员, 是他们让我们感受到了技术
进步的喜悦.
发表评论
-
gradle编译错误:Could not find method compile() for arguments
2020-09-19 10:50 18500编译(IDEA+Gradle)一个别人的工程,出现一个 ... -
netty心跳检查之UDP篇
2019-09-15 08:50 2393部分UDP通信场景中,需要客户端定期发送心跳信息,以获取终 ... -
解决tomcat部署两个SpringBoot应用提示InstanceAlreadyExistsException
2019-06-30 11:49 3388两个SpringBoot应用部署在一个Tomcat中,单独 ... -
Eclipse配置MyBatis代码自动化功能
2019-06-29 10:16 17701.安装插件 Eclipse中,Help->Ecli ... -
vue.js中使用qrcode生成二维码
2019-05-20 00:00 7654一、安装包 npm install qrcodejs2 --s ... -
MySQL插入数据报错: Incorrect string value: '\xFD\xDE'
2019-03-31 23:19 1251我MySQL数据库用的uft-8字符集,插入数据一直很正常 ... -
vue自定义组件并双向绑定属性
2019-03-08 22:46 3258做了两个子组件,原理基本一样,一个是使用原生的select ... -
vue-router简单示例
2019-03-05 00:32 1152写个基本完整、稍有借鉴意义的示例,防止自己忘记。 &l ... -
“联通充值系统繁忙”轻松应对
2019-02-06 11:03 3973大过年的,联通充个值一直报“充值系统繁忙”。昨天晚上试了几 ... -
electron.js数据库应用---导航菜单(element-ui+mysql)
2019-02-05 21:33 2364一、环境搭建 略, ... -
electron.js数据库应用---入门(mysql+element-ui)
2019-01-27 23:19 7497我的机器:Windows10,64 ... -
SpringMVC 在controller层中注入成员变量request,是否线程安全
2018-12-17 21:17 2748@RestController public class ... -
VueJS 组件参数名命名与组件属性转化
2018-12-03 00:00 2075转自:https://www.cnblogs.com/meiy ... -
vue-resource拦截器实现token发送及检验自动化
2018-11-16 22:38 3077用了很长时间vue-resource,最近思考$http发 ... -
element-ui试用手记
2018-10-29 20:25 1745element-ui、iviewui都以vue.js为基础 ... -
iviewui中表格控件中render的使用示例
2018-07-07 16:46 9786示例了如何在表格中显示按钮,如何将代码转化为文字。 i ... -
Tomcat错误“Alias name tomcat does not identify a key entry”解决
2018-07-05 21:39 6571申请到了阿里云的证书后,下载、按照说明生成jks格式证书、 ... -
阿里云免费证书“fileauth.txt内容配置错误”解决
2018-07-05 20:43 5299最近研究微信小程序开发,上阿里云申请了个证书,使用文件验证 ... -
springboot2.0跨域配置
2018-07-04 22:11 5285springboot2.0跨域配置: 一、代码 ... -
微信小程序使用code换openid的方法(JAVA、SpringBoot)
2018-07-01 21:52 10398微信小程序序的代码中提示,使用code换取openid,但 ...
相关推荐
《深入解析Glassfish 3.1.2.2与Java EE 6的融合应用》 Glassfish 3.1.2.2是一款由Oracle公司开发的开源应用服务器,它是Java EE 6规范的重要实现者,提供了全面的支持和丰富的功能,为开发者提供了构建企业级Web...
Apache Tomcat 8.5.51 是一个广泛使用的开源软件,它实现了Java Servlet和JavaServer Pages(JSP)规范,使开发者能够构建和部署动态Web应用程序。此版本的Tomcat针对Windows和Linux操作系统进行了优化,确保在这些...
10. **扩展性**:Tomcat可与其他Java EE组件如EJB容器(例如JBoss、GlassFish)配合使用,实现更完整的应用服务器功能。 总之,Apache Tomcat 9.0.86是Java Web开发的重要组成部分,提供了可靠且高效的平台来运行和...
在Java Web开发领域,Tomcat与主流的Java应用服务器如JBoss、GlassFish等相比,因为其小巧、高效和易于管理的特性,深受开发者喜爱。 在"apache-tomcat-9.0.82-windows-x64.zip"这个压缩包中,我们可以预期包含以下...
Tomcat可以作为独立的Web服务器使用,也可以与其他Java EE应用服务器(如JBoss、GlassFish)一起工作,或者与Spring Boot等现代开发框架集成。 10. **社区支持与版本更新** Apache Tomcat有一个活跃的开发者社区...
Apache Tomcat 9.0.63 是一个广泛使用的开源软件,主要作为Java Servlet和JavaServer Pages(JSP)的Web应用服务器。它是Apache软件基金会的项目之一,专注于实现Java EE(现在称为Jakarta EE)的Web部分。在这个...
它不包含完整的Java EE功能,如ejb、JMS等,但可以通过与其他开源软件(如JBoss或GlassFish)结合使用来实现这些功能。 - **架构**:Tomcat采用Catalina核心引擎,管理Servlet容器,以及 Coyote HTTP/1.1协议处理器...
其中的核心文件是《Packtpub.GlassFish.Security.May.2010.pdf》,很可能是由Packtpub出版社在2010年5月出版的一本关于GlassFish服务器安全的电子书。GlassFish是Oracle公司的一个开源应用服务器,广泛应用于Java EE...
- Tomcat常与其他Java应用服务器如JBoss、GlassFish等集成,以实现更复杂的企业级应用架构。 - 它还可以与Apache HTTP Server通过mod_jk或mod_proxy模块进行反向代理,提升性能和负载均衡能力。 总结来说,Apache...
5. **集群与高可用性**:理解如何通过GlassFish实现应用的集群部署,提高系统的可扩展性和容错性,包括负载均衡、故障转移等概念。 6. **安全管理**:深入学习GlassFish的安全特性,如身份验证、授权、加密和SSL/...
glassfish-v3-windows.part1
maven-glassfish-plugin-2.0.jar
2. 高性能:相比Tomcat,GlassFish在处理并发请求和大型应用时表现出更高的性能,特别是在使用EJB和JMS等高级特性时。 3. 扩展性:GlassFish支持集群部署,可以轻松扩展以应对高负载需求,通过Admin Console可以...
glassfish-v3-windows.part4
glassfish-v3-windows.part2
与更全面的Java EE应用服务器如JBoss或GlassFish相比,Tomcat只包含了Servlet和JSP引擎,不包含其他如EJB、JMS等企业级服务。但这并不妨碍开发者使用开源库和服务来扩展其功能,使其能够支持更复杂的Java应用。 在...
org.glassfish.jersey.media:jersey-media-multipart:2.24.1 Jersey 上传文件以及下载文件所需的依赖库,maven下载比较慢,我手动下载下来了。放到你的libs目录
maven-embedded-glassfish-plugin-3.1.2.2.jar
maven-glassfish-plugin-2.1.jar
尽管Tomcat不是完整的Java EE应用服务器,但它与Java EE的其他组件(如EJB)可以通过与其他服务器(如JBoss或Glassfish)集成来支持。 **Linux系统**: Linux是一种自由和开放源代码的操作系统,广泛应用于服务器...