`
jones
  • 浏览: 51328 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Seam 2.0 升级说明

    博客分类:
  • JSF
阅读更多
Seam 2.0 升级向导
========================
在你开始使用Seam2之前你需要对你的代码和配置做一些更改,这个过程是非常简单的,
如果没有升级成功请查阅Seam的升级示例

支持Seam 2.0的容器环境
--------------------------------
Seam 2.0 已经在一下容器中做过测试

* JBoss 4.2 (升级到JSF 1.2 的JBoss 4.0.5)
* Tomcat 6.0 (Tomcat 5.5 不支持 JSF 1.2)
* GlassFish V2
* OC4J 11g Technology Preview

升级到 JSF 1.2
--------------------
Seam 2.0 需要 JSF 1.2. 我们认为现在Sun的官方JSF实现是最成熟的JSF 1.2 实现,
这也是大多数java EE5应用服务器中使用的版本,包括 JBoss 4.2. 为了把你的代码切换到这个版本
你需要对你的web.xml做如下改动,

* 移除 MyFaces 的 StartupServletContextListener监听器
* 移除 Ajax4JSF 过滤器和映射配置
* 把 org.jboss.seam.web.SeamFilter 改名为 org.jboss.seam.servlet.SeamFilter

同时要注意的是对于Sun的JSF实现,客户端状态保存不是必须的

你同时也需要对你的faces-config.xml做一些改动

* 移除 (Tranactional)SeamPhaseListener 声明
* 移除SeamELResolver 声明如果你配置了它
* 把SeamFaceletViewHandler改为com.sun.facelets.FaceletViewHandler

从Seam 1.2开始,你不再需要在你的web.xml中为SeamExceptionFilter
或SeamRedirectFilter做任何声明,你只需要为SeamFilter做一个简单的声明就可以了。

确定你已经做好了上面的改动

代码升级
--------------
为了使Seam的内建组件更加容易学习使用且与具体技术实现隔离开,内建组件进行了重构设计

* 与持久化相关的组件移到了org.jboss.seam.persistence包中
* 与jBPM 相关的组件移动到了org.jboss.seam.bpm包中
* 与JSF相关的组件移动到了org.jboss.seam.faces包中
* Servlet相关的组件移动到了org.jboss.seam.web包中
* 与并发相关的组件移动到了org.jboss.seam.async包中
* 与i18n相关组件移动到org.jboss.seam.international包中
* 与Pageflow相关的组件移动到了org.jboss.seam.pageflow包中
* 与页面导航相关组件移动到了 org.jboss.seam.navigation包中

依赖与这些API的代码需要重新引入这些新包名

Annotations 也进行了重构

* BPM相关的annotations 移动到 org.jboss.seam.annotations.bpm
* JSF相关的annotations 移动到 org.jboss.seam.annotations.faces
* Interceptor相关的annotations 移动到org.jboss.seam.annotations.intercept
* 并发相关的Annotations移动到org.jboss.seam.annotations.async
* @RequestParameter 移动到 org.jboss.seam.annotations.web
* @WebRemote 移动到 org.jboss.seam.annotations.remoting
* @Restrict 移动到 org.jboss.seam.annotations.security
* 异常处理相关的annotations移动到org.jboss.seam.annotations.exception
* 使用@BypassInterceptors代替@Intercept

升级components.xml
---------------------------
seam组件新的包结构给components.xml带来了新的组件命名空间和schemas

如下包中的组件的命名空间
    org.jboss.seam.foobar
   
现在为:

    http://jboss.com/products/seam/foobar
   
同时schema为:

    http://jboss.com/products/seam/foobar-2.0.xsd

你需要升级你的components.xml到新的命名空间和schemas,如果你不知道怎么去做
请参考seam的升级示例

最后,一些声明需要完全移除:

* 从<core:init/>中移除 <conversation-is-long-running-parameter> 
* 移除<core:ejb/>
* 移除<core:microcontainer/>
* 用<transaction:ejb-transaction/>替换<core:transaction-listener/>
* 用<core:resource-loader/>替换 <core:resource-bundle/>
         
注意: Seam 事务管理器现在默认是开启的.如果你想关闭seam事务管理器:
     
      <core:init transaction-management-enabled="false"/>
     
注意: event的action的expression属性不赞成再使用,建议使用execute

      <event type="org.jboss.seam.notLoggedIn">
          <action execute="#{redirect.captureCurrentView}"/>
      </event>

升级到嵌入式 JBoss
--------------------------
不再支持部署到嵌入式JBoss Ejb3和JBoss微容器,通过简单的部署
,新发行的嵌入式JBoss可以提供给你一个完全符合EE标准的APIs

对于测试来说, 你需要把Seam lib/ 目录下的jar包和
bootstrap/ 目录放到你的classpath中. SeamTest会自动启动容器
如果你有问题请参考Seam的示例或seam-gen

部署到Tomcat请按照指南中的介绍。这时候你不再需要任何额外的声明或打包。

注意现在嵌入式的JBoss已经有能力在启动的时候通过一个-ds.xml file参数来
初始化一个数据源,所以不再需要jboss-beans.xml。

升级到JBPM 3.2
---------------------
如果你在你的业务处理中使用了JBPM (不仅仅是pageflows), 你需要添加一个
tx service到你的jbpm.cfg.xml:
  <service name="tx" factory="org.jbpm.tx.TxServiceFactory" />
 
升级到RichFaces 3.1
--------------------------
如果你使用了RichFaces 或 Ajax4jsf,它们的基础代码已经被重构过了.
ajax4jsf.jar和 richfaces.jar已经被一下几个jar包替换掉
richfaces-api.jar (应该放到你的ear的lib目录中)
richfaces-impl.jar和richfaces-ui.jar (放到你的WEB-INF/lib目录中).

s:selectDate不再推荐使用,推荐使用 rich:calendar替代.

要获得更多的改动信息请参考RichFaces的文档

包结构的改动
-----------------
你应该把你在application.xml中声明的modules的所有依赖项放到你的ear的lib目录中,
除了jboss-seam.jar,它应该在application.xml中被声明为一个ejb module

Seam UI的改动
------------------

* s:decorate 成为一个命名容器(naming container). 
  因此组件的编号从fooForm:fooInput 改为了 fooForm:foo:fooInput (假设你的s:decorate有一个foo的ID).

seam-gen的改动
-------------------

从Seam 2.0.0.CR2 开始seam-gen在代码的生成上有一个改动,

旧的代码生成方式:

  src/model/com/domain/projectname/model/EntityName.java
  src/action/com/domain/projectname/model/EntityNameHome.java
  src/action/com/domain/projectname/model/EntityNameList.java

新的代码生成方式:

  src/model/com/domain/projectname/model/EntityName.java
  src/action/com/domain/projectname/action/EntityNameHome.java
  src/action/com/domain/projectname/action/EntityNameList.java

Home和Query 对象是 "动作"型组件,而不是"模型" 组件,所以它们应该被放到action包中.


请记住, model类被分开放置是因为它们不支持热加载(hot reloaded).
分享到:
评论

相关推荐

    jboss-seam2.0文档

    `下载说明.html`可能包含了获取和安装Seam 2.0的步骤,以及如何配置开发环境的指导。这通常包括设置IDE集成、添加库依赖和配置服务器等步骤。 五、社区与支持 `fwvv.net说明.txt`可能是指向Seam社区或者论坛的链接...

    Seam2.0 中文手册

    从给定的文件信息来看,这是一份关于Seam2.0的技术文档,尽管部分文本似乎是乱码,但我们可以从其结构和部分可识别的文字中提取出与Seam2.0相关的关键知识点。 ### Seam2.0概述 Seam2.0是一个基于Java的框架,用于...

    jboss-seam2.0文档.rar

    《JBoss Seam 2.0:企业级应用开发框架详解》 JBoss Seam是一个全面的Java EE集成框架,特别设计用于简化企业级应用程序的开发。Seam 2.0是其一个重要版本,它在1.x的基础上进行了许多改进,旨在提供更高效、更灵活...

    seam2.0 全国 省份、城市级联

    在"seam2.0 全国 省份、城市级联"这个项目中,我们主要关注的是如何利用Seam 2.0实现一个全国省份和城市之间的二级联动效果。 级联选择通常用于网页表单中,允许用户首先选择一个省份,然后根据所选省份动态加载...

    seam2.0 中文文档

    通过深入学习和理解"seam2.0 中文文档",开发者可以充分利用Seam 2.0 的强大功能,高效地开发出复杂的企业级应用。这份文档是学习和使用Seam 2.0 的宝贵资源,可以帮助开发者快速上手并掌握关键概念。

    Seam2.0学习文档

    以下是对Seam 2.0学习文档中的关键知识点的详细说明: 1. **Context(上下文)管理**:Seam 提供了一个灵活的上下文模型,允许开发者在不同层面上管理和访问对象。这包括请求上下文、会话上下文和应用上下文。请求...

    jboss Seam2.0 语境相关的组件文档

    **JBoss Seam 2.0:语境相关的组件** JBoss Seam 2.0 是一个开源的Java EE框架,它将企业级服务与富互联网应用(RIA)开发紧密结合,简化了构建复杂Web应用的过程。Seam的核心特性之一是其对上下文(Contexts)和...

    Seam2.0GA 中文开发指南

    ### Seam2.0 GA 中文开发指南 #### JBoss Seam简介 JBoss Seam是一个高度集成的应用框架,旨在简化企业级Java应用的开发过程。Seam2.0版本提供了丰富的功能来支持面向组件的编程模式,并且它紧密集成了JavaServer ...

    seam2.0API

    seam2.0_api帮助文件,chm文件

    jboss seam 2.0 中文手册

    整理自jboss seam 中文站,压缩为chm格式,便于广大jboss seam爱好者阅读,所有版权归jboss seam中文站所有。

    Seam_2.0_Reference_zh_CN

    Seam 2.0 是一个全面的Java EE框架,它为开发人员提供了一种整合多种技术,如JavaServer Faces (JSF)、Enterprise JavaBeans (EJB)、Java Persistence API (JPA)以及Spring等的强大工具。这个"Seam_2.0_Reference_zh...

    Seam_2.0_Reference_zh_CNpdf

    根据提供的文件信息,我们可以推断出这是一份关于Seam 2.0的中文参考文档。Seam是一个基于Java EE平台的应用程序框架,它集成了JSF、EJB和其他技术来简化企业级应用的开发过程。下面将从几个方面详细阐述Seam 2.0中...

    Jboss_Seam_2.0中文手册

    Jboss_Seam_2.0中文手册

    Spring 2.5中文手册+hibernate手册+Seam_2.0_R中文手册

    Seam 2.0_R中文手册则聚焦于Seam框架,这是一个整合了JSF(JavaServer Faces)、EJB 3、JPA(Java Persistence API)等技术的全栈式框架。Seam的目标是提供一个无缝的开发环境,让开发者能够轻松地构建富互联网应用...

    Seam Framework 2.0 Reference中文版

    ### Seam Framework 2.0 Reference中文版知识点梳理 #### JBoss Seam 概述 JBoss Seam 是一款基于 Java 的企业级应用开发框架,它简化了应用程序的开发过程,特别是那些涉及复杂的用户交互、业务逻辑以及数据处理的...

    JBOSS SEAM组件中文手册

    2. **CDI支持**: 虽然Seam 2.0发布时,Contexts and Dependency Injection (CDI)规范还未正式发布,但Seam已经提供了类似的功能。 3. **Seam生成器(Seam Generator)**: 提供了一套工具,用于快速生成Seam项目和...

    Seam_2.0中文

    Seam - 语境相关的组件 [满江红20080327] Java EE框架

    seam的文档

    《Seam 2.0 Reference》中文版的文档是学习和理解Seam框架的重要资源。 Seam 2.0 强调了组件化的开发方式,它允许开发者使用JSF的UI组件与EJB的业务逻辑无缝连接。JSF作为用户界面层的标准,擅长处理Web表单和事件...

Global site tag (gtag.js) - Google Analytics