`
yourenyouyu2008
  • 浏览: 286736 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

seam2 热部署

    博客分类:
  • seam
 
阅读更多

seam能很好地支持 页面(faceslet)、非ejb class,各种page.xml的热部署,完全动态支持这些内容的增加、修改,但不支持删除。其中页面(faceslet)的热部署是有facelets自己管理的,与seam无关。

基本的配置seam官方文档讲解的都很清楚了,这里再简单罗列一下。可以详细查看seam官方文档

1)在components.xml中设置<core:init debug="true">,debug="false"取消热部署

2)将class放到 WEB-INF/dev目录下,默认是放到WEB-INF/class下的。

3)在components.xml中配置热部署filter的url<web:hot-deploy-filter url-pattern="*.seam" />,这样就只对.seam这样的请求进行热部署处理,静态资源不需要热部署,比如.jpg,.css,.js等都不需要热部署。

 

热部署原理

seam通过filter(HotDeployFilter)进行热部署,每次请求HotDeployFilter都会去扫描WEB-INF/dev下的class、各种xx.components.xml和各种xx.page.xml,如果有增加或修改就清空全部热部署相关的组件和组件实例,然后全部重建这些组件,当请求中用到组件实例时再去构造组件实例,这样会导致请求失效,再次访问就好了。

导致的性能问题

每次seam请求都会导致扫描全部热部署的资源,当热部署的资源越来越多时会导致大量的无用磁盘扫描,非常影响访问性能。绝大多数时候seam访问都是不需要热部署的,可以让正常的seam访问不走HotDeployFilter,只有当有修改需要热部署时,通过一个访问触发热部署,然后再正常seam访问即可。

这样配置<web:hot-deploy-filter url-pattern="*.seam1" />,需要热部署时就访问下xxx.seam1,页面会报错,但不用管,再次访问xxx.seam即可将修改的内容体现出来。

热部署限制

非热部署的class不能访问热部署的class,反过来则可以。比如不能在jsf验证器中调用热部署的class,因为jsf验证器是由web classloader加载的,web classloader加载不了热部署目录中的class

可以通过seam组件方式加载,然seam去加载

validator=(IBusinessValidator) Component.forName(getValidatorClassName()).getBeanClass().newInstance();

不能热部署的资源

实体类,ejb目前都不能热部署

分享到:
评论

相关推荐

    seam参考手册中文版

    - **热部署**: 介绍Seam支持的热部署特性,有助于提升开发效率。 #### 三、上下文相关的组件模型 ##### Seam上下文层次 - **无状态上下文**:主要用于临时性的交互操作,不保留任何状态信息。 - **事件上下文**:...

    Jboss Seam中文版

    6. **热部署与增量部署**:讨论了Seam支持的动态部署特性,方便开发者在开发过程中实时查看更改效果。 7. **在JBoss 4.0下使用Seam**:由于JBoss 4.0版本较老,因此需要特别注意兼容性问题。 #### 第三章:上下文...

    SEAM 中文开发指南

    - **Seam与增量热部署**:支持热部署,提高开发效率。 - **在Jboss4.0下使用Seam**: - **安装JBoss4.0**:确保 JBoss 版本兼容。 - **安装JSF1.2RI**:满足 SEAM 的运行环境要求。 #### 四、上下文相关的组件...

    Seam Framework 2.0 Reference中文版

    - **Seam 与增量热部署**:介绍了如何利用 Seam 的增量热部署功能提高开发效率。 - **在 Jboss4.0 下使用 Seam**:这部分介绍了如何在 JBoss 4.0 上配置和运行 Seam 应用程序。 #### 第三章:上下文相关的组件模型 ...

    seam in action

    10. **热部署**:Seam支持热部署,开发者在开发过程中无需重启服务器,提高了开发效率。 在阅读《Seam in Action》这本书时,读者会逐步学习到如何配置和搭建Seam环境,创建Seam项目,设计组件,处理事件,以及进行...

    JBoss Seam 工作原理、seam和hibernate的范例、RESTFul的seam、seam-gen起步、seam组件、配置组件、jsf,jboss、标签、PDF、注解等等

    2 JBoss Seam 简介......................................................................................................................................................................... 11 Chapter 1...

    seam 2.1 参考手册

    - **增量热部署**:讨论了如何在开发过程中使用增量热部署功能,提高开发效率。 - **与JBoss 4.0集成**:提供了与旧版JBoss服务器集成的步骤。 综上所述,Seam 2.1 GA版本不仅在技术支持方面实现了重大突破,还在...

    seam2.1说明文档

    - **Seam and incremental hot deployment**:介绍如何利用 Seam 2.1 的热部署特性提高开发效率。 - **Using Seam with JBoss 4.0**:提供如何在 JBoss 4.0 上部署 Seam 2.1 应用的具体步骤。 通过以上对 Seam 2.1 ...

    seam in action(英文版)

    此外,Seam还支持热部署和即时编译,这意味着开发者可以在不重启服务器的情况下进行代码修改和测试,极大地提高了开发效率和迭代速度。 综上所述,《Seam in Action》这本书深入浅出地介绍了Seam框架的关键概念和...

    jboss seam help

    与AppFuse相比,Seam提供了更简单、更高效的开发体验,尤其是在配合JBoss应用服务器进行热部署时,能够极大地提升开发效率。 **Seam的核心特性** 1. **集成性**:Seam将各种Java EE技术,如EJB、JSF、JPA、CDI、...

    jboss seam 中文文档

    - **热部署与增量部署**:介绍了 Seam 支持的两种部署模式,使开发者能够在开发过程中快速迭代和测试。 - **在 JBoss 4.0 下使用 Seam**:针对旧版本的 JBoss 容器,给出了具体的安装步骤和注意事项。 #### 四、...

    Seam - 语境相关的组件 .pdf

    最后,文档还介绍了如何在JBoss中使用JSF 1.2 RI运行Seam应用,以及如何使用Seam-gen工具快速启动新项目,包括从数据库生成应用程序、部署为EAR包和增量热部署。 Seam的核心是其上下文相关的组件模型,包括无状态上...

    seam2.0 中文文档

    - **Seam与增量热部署**: - 讨论了如何在开发过程中实现实时更新。 - **在Jboss4.0下使用Seam**: - 介绍了如何在特定版本的JBoss AS环境下使用Seam。 #### 三、上下文相关的组件模型 ##### 3.1 Seam上下文 - **...

    seamproject

    10. **热部署**:Seam的开发环境支持热部署,即在应用运行时可以修改和更新组件,极大地提高了开发效率。 "seam-open18-phase2"可能涉及到对OpenJDK 1.8的优化,这意味着该版本可能利用了Java 8的一些特性,如...

    Manning.Seam.in.Action.Sep.2008.pdf

    为了提高开发效率,Seam提供了许多便捷的功能,如代码生成、即时编译、热部署等。这些工具和特性支持开发者在开发过程中进行快速迭代,大大缩短了从设计到上线的时间周期。此外,Seam还内置了一系列UI组件和工具,...

    深入浅出JBoss_2BSeam

    此外,JBoss AS(Application Server)的热部署功能使得开发者在开发过程中能够快速地测试和调试应用。 接下来,我们探讨Seam框架。Seam弥补了Java EE中的一些不足,它将JSF(JavaServer Faces)、EJB、CDI...

    教你如何快速入门jboss

    4. **热部署**:JBoss支持热部署,即在不中断服务的情况下更新应用程序,提高了开发和维护效率。 ### 二、配置JBoss 1. **配置文件**:主要的配置文件有standalone.xml和domain.xml,分别对应单服务器和集群模式。...

    JBoss encore 工程7.31

    此外,Encore的热部署功能也极大地提高了开发效率,使得代码修改后无需重启服务器即可立即生效。 3. **Seam**: Seam是另一个重要的JBoss项目,它是一个全面的Java EE框架,整合了多种技术,如CDI(Contexts and ...

Global site tag (gtag.js) - Google Analytics