当前位置:首页 > 开发 > 系统架构 > 架构 > 正文

从Seam2.2升级到2.3

发表于: 2012-10-16   作者:sunjing   来源:转载   浏览次数:
摘要:   1、  升级 XML Schema 1.1 升级 Seam Schema 涉及的文件有 components.xml 和 page.xml 。 除将版本号由“ 2.2 ”改为“ 2.3 ”外,注意 seam2.3 的 namespace 不同于 2.2 ,由“ jboss.com/products/seam/ ” 改成了“ jboss.org/sche

 

1、  升级 XML Schema

1.1 升级 Seam Schema

涉及的文件有 components.xml page.xml

除将版本号由“ 2.2 ”改为“ 2.3 ”外,注意 seam2.3 namespace 不同于 2.2 ,由“ jboss.com/products/seam/ 改成了“ jboss.org/schema/seam ”。

1.2   修改 Java EE 6 Schema

涉及的文件有:

 1)  persistence.xml

升级为 JPA2

< persistence xmlns = "http://java.sun.com/xml/ns/persistence"

xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation = "http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version = "2.0" >

 2)  Web.xml

使用 servlet3.0

< web-app xmlns = "http://java.sun.com/xml/ns/javaee"

xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version = "3.0" >

 3)  application.xml

使用 Java EE 6

< application xmlns = "http://java.sun.com/xml/ns/javaee"

xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" version = "6" >

 4)  faces-config.xml

< faces-config version = "2.1"

xmlns = "http://java.sun.com/xml/ns/javaee"

xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd" >

2、  升级 Jave EE 6

Seam2.3 支持 Java EE 6 ,可以 JPA2 EJB3.1 Bean Validation

2.1 使用 Bean Validation 取代 Hibernate Validator

Bean Validation Java EE 6 中的一个新技术标准( JSR-303 ), Hibernate Validator 4.x 是它的一个参考实现。要对原来的 hibernate 注解进行替换,如:

 

org.hibernate.validator.Length 改为 javax.validation.constraint.Size

org.hibernate.validator.NotNull 改为 javax.validation.constraint.NotNull

org.hibernate.validator.Pattern 改为 javax.validation.constraint.Pattern

2.2 Facelets 模板从 JSF 1 升级到 JSF 2

模板中的 <head>/<body> 标签转换为 <h:head>/<h:body>

Richfaces 升级为 4

2.3 升级到 JPA 2.0

JPA2.0 是向后兼容的,因此不必升级任何注解或类。

2.4 使用兼容的 JNDI

Java EE 6 定义了 JNDI 语法新的标准规则。因此应将所有 JNDI 字符串从“ your_application/#{ejbName}/local ”,改为“ java:app/application-module-name/#{ejbName} ”。如 components.xml 中的 jndi-pattern 需修改为“ java:app/ application-module-name /#{ejbName} ”。

3 、部署到 Jboss AS 7.1

3.1   部署的变化

修改 persistence.xml 中的 JNDI 数据源,如 Jboss 默认数据源由“ java:/DefaultDS ”,改为“ java:jboss/datasources/ExampleDS ”。

EAR META-INF 目录或 WAR WEB-INF 目录中新增 jboss-deployment-structure.xml 文件。 Seam2.3 的最小基本配置如下:

< jboss-deployment-structure xmlns = "urn:jboss:deployment-structure:1.0" >

< deployment >

< dependencies >

< module name = "org.dom4j" export = "true" />

< module name = "org.apache.commons.collections" export = "true" />

< module name = "javax.faces.api" export = "true" /> <!-- keep there only if you use JSF

as view technology -->

</ dependencies >

</ deployment >

</ jboss-deployment-structure >

3.2   升级 Datasource

以前的数据源文件 ( *-ds.xml) 是简单的 xml 文件,现在是 Iron-Jacamar Iron-Jacamar Jboss JCA 项目)文件。

Iron-Jacamar 文件样例:

<?xml version="1.0" encoding="UTF-8"?>

< datasources xmlns = "http://www.jboss.org/ironjacamar/schema" >

< datasource jndi-name = "java:/jboss/seamdiscsDatasource"

enabled = "true" use-java-context = "true" pool-name = "seamdiscs" >

< connection-url > jdbc:hsqldb:. </ connection-url >

< driver > org.hsqldb.jdbcDriver </ driver >

< security >

< user-name > sa </ user-name >

< password ></ password >

</ security >

</ datasource >

</ datasources >

4、  测试框架的变化

使用 Arquillian 取代了嵌入式 Jboss ,使用 JunitSeamTest 替代 SeamTest ,使用 DBJUnitSeamTest 替代 DBUnitSeamTest 进行 DBUnit 测试。由于使用 TestNG Arquillian 有断言问题,因此首选 Junit 测试框架。

升级步骤参见 seam 文档。

5、  Maven 依赖变化

Seam BOM pom 文件中包含了 seam2.3 的推荐依赖和版本,可以在 maven pom 文件中引用。用法如下:

< dependencyManagement >

< dependencies >

< dependency >

< groupId > org.jboss.seam </ groupId >

< artifactId > bom </ artifactId >

< version > 2.3.0.Final </ version >

< type > pom </ type >

< scope > import </ scope >

</ dependency >

...

</ dependencies >

</ dependencyManagement >

 

< dependencies >

< dependency >

< groupId > org.jboss.seam </ groupId >

< artifactId > jboss-seam </ artifactId >

< type > ejb </ type >

< dependency >

...

</ dependencies >

 

从Seam2.2升级到2.3

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
感谢读者 旧糖罐、chaos 和 小P孩儿 的提醒。 尽管Chrome和Chromium的版本号没有任何意义,但我们还
感谢读者 枫虹一刀刘 的提醒。 Chrome Dev for Windows/Linux/Mac/Chrome Frame一起升级到 15.0.861
春节前刚为公司架设消息推送服务器时,安装的MongoDB服务版本为2.4.9,2014-04-08日MongoDB2.6.0发
1.Android升级为2.3,不能联网,原因是2.3默认没有安装GSM modem,在新产生AVD模拟器时,硬件中添加
经营一个博客不算容易,每天风雨无阻更新博客,耗时耗力不说,还要时刻小心被和谐的危险。除了这个
由于Google目前只是开放了Android 2.3的源码,并没有Android 2.3的SDK。因此如何运行 Android 2.3呢
Android 2.3应用开发实战 全面介绍Android OS操作环境,包括SDK 2.3版最新内容 丰富的范例程序详解A
Nick Pack,一名iDroid开发者(iDroid项目就是让你的iPhone可以运行Android系统),刚刚发布了运行A
4、创建VS2010项目: 没有VS2010,可以点击下面链接下载: (1)Visual Studio 2010 Professional E
昨天我已经发布了我修改的 Google Sitemap Generator v3.0b,使其兼容 WP 2.3 Beta 1,今天我兑现昨
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号