`
XmKevinChen
  • 浏览: 86314 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Seam 工程搭建记录(1)

    博客分类:
  • J2EE
阅读更多

1. SEAM 2.2 还是不能正常的支持JSF 2.0

尝试了2天还是搞不定, seam对jsf的phase解析就出现NullPointException, 换回jsf1.2问题就没有了, SEAM官方说可以无缝升级,但是事实上我搞不定

 

2. SEAM和Hibernate配合, 在注入session点时候, 变量名要和在componts.xml的如下配置的name属性一致

 

<persistence:managed-hibernate-session
		name="hibernateSession" session-factory="#{hibernateSessionFactory}"
		auto-create="true" session-factory-jndi-name="java:/AquariansSessionFactory" />

或者在注入的时候指定名字

@In(value="#{hibernateSession}")
protected Session session;

 

 

3. 试用泛型DAO时候,在初始化需要对从SEAM(org.jboss.seam.Instance)代理来的类进行处理

原来的代码

 

private Class<T> clazz;

	@SuppressWarnings("unchecked")
	public GenericDaoImpl() {
		
		this.clazz = (Class<T>) ((ParameterizedType) getClass()
				.getGenericSuperclass()).getActualTypeArguments()[0];
	}
 

 

需要进行进一步的判断

 

	private Class<T> clazz;

	@SuppressWarnings("unchecked")
	public GenericDaoImpl() {

		Type t = getClass().getGenericSuperclass();
		Type arg;
		
		/* 以下判断用于区分是否是代理类,如果是代理类需要再次获得一次GenericSuperclass */
		if (t instanceof ParameterizedType) {
			arg = ((ParameterizedType) t).getActualTypeArguments()[0];
		} else if (t instanceof Class) {
			arg = ((ParameterizedType) ((Class) t).getGenericSuperclass())
					.getActualTypeArguments()[0];

		} else {
			throw new RuntimeException("Can not handle type construction for '"
					+ getClass() + "'!");
		}

		if (arg instanceof Class) {
			this.clazz = (Class<T>) arg;
		} else if (arg instanceof ParameterizedType) {
			this.clazz = (Class<T>) ((ParameterizedType) arg).getRawType();
		} else {
			throw new RuntimeException("Problem dtermining generic class for '"
					+ getClass() + "'! ");
		}

	}

 

 

4. 注入泛型DAO时候需要添加创建属性,保证注入的对象为空的时候,让SEAM创建

 

@In(create = true)
private IUserDao userDao;

 

 

5.  SEAM和Hibernate结合的配置,

1. 配置好hibernate本身, 也就是hibernate.cfg.xml, 运行时能在classes目录下找到就可以了

2. 在components.xml文件中添加如下配置即可

 

<?xml version="1.0" encoding="UTF-8"?>
<components xmlns="http://jboss.com/products/seam/components"
	xmlns:core="http://jboss.com/products/seam/core" xmlns:persistence="http://jboss.com/products/seam/persistence"
	xmlns:security="http://jboss.com/products/seam/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:web="http://jboss.com/products/seam/web" xmlns:transaction="http://jboss.com/products/seam/transaction"
	xsi:schemaLocation="http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.2.xsd 
                 http://jboss.com/products/seam/persistence http://jboss.com/products/seam/persistence-2.2.xsd 
                 http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.2.xsd
                 http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.2.xsd
                 http://jboss.com/products/seam/web http://jboss.com/products/seam/web-2.2.xsd
                 http://jboss.com/products/seam/transaction http://jboss.com/products/seam/transaction-2.2.xsd">


	

<persistence:hibernate-session-factory
		name="hibernateSessionFactory" />

	<persistence:managed-hibernate-session
		name="hibernateSession" session-factory="#{hibernateSessionFactory}"
		auto-create="true" session-factory-jndi-name="java:/AquariansSessionFactory" />

	<transaction:hibernate-transaction
		session="#{hibernateSession}" />

</components>

 

6. 如果要使用Tomcat作为开发调试使用,需要参照SEAM的Reference,在Tomcat上装上embedded jboss,然后修改相应配置文件, 这里要记录的时候, 如果在Eclipse上使用WTP工程,应该对应修改WTP添加的服务器的配置文件,而不是Tomcat本身

 

 7. 最后附带上maven的pom.xml文件到附件, 当作存档使用

0
0
分享到:
评论

相关推荐

    JBoss Seam工程的创建

    1. **配置seam-gen**:进入`jboss-seam-2.0.x`目录,运行`seam setup`命令。这会引导你进行一系列配置,包括指定Eclipse工作空间的位置、JBoss AS的安装路径、项目名称、是否需要集成Ajax库、以及工程的部署类型等。...

    eclipse 工程的 Seam 例子

    1. 首先,你需要在Eclipse中安装Seam插件,如JBoss Tools。 2. 创建一个新的Seam工程,然后在工程中添加EJB和Web模块。 3. 在EJB模块中,定义EJB组件,例如创建一个用于用户注册的无状态会话豆。 4. 在JSF模块中,...

    seam创建工程

    1. **环境准备**:确保你的开发环境中已经安装了Java JDK、Eclipse IDE(或其他支持Seam的IDE)、JBoss AS(或WildFly,因为Seam是基于JBoss的应用服务器)以及Seam工具集,如Seam Gen或Maven插件。 2. **新建项目*...

    seam 的eclipse工程例子3

    1. 安装Seam插件:首先,你需要确保Eclipse安装了支持Seam的插件,如JBoss Tools。这可以通过Eclipse Marketplace或者更新站点完成。 2. 创建新项目:然后,你可以创建一个新的Seam项目。在"File"菜单中选择"New",...

    eclipse 工程seam 例子2

    【Eclipse工程Seam示例2】是一个关于Java企业级开发的实践案例,它涉及到的主要技术包括Seam框架、EJB(Enterprise JavaBeans)以及JSF(JavaServer Faces)。这个项目可能是为了演示如何在Eclipse集成开发环境中...

    Jboss Seam中文版

    本章主要介绍Seam的基本概念以及如何快速搭建环境,通过一系列示例加深对Seam的理解。 ##### 1.1 试试看 这一节主要介绍了如何在JBoss AS和Tomcat服务器上运行Seam示例,帮助开发者熟悉Seam的基本配置和运行环境。...

    jboss seam 学习资料,seam in action和官方手册

    8. **错误处理和日志**:熟悉Seam的异常处理和日志记录机制。 9. **国际化与本地化**:学习如何配置Seam进行多语言支持。 10. **实用工具**:包括邮件服务、定时任务、PDF生成等功能的使用说明。 通过阅读这些材料...

    seam参考手册中文版

    - **章节2**: 介绍如何利用Seam-gen工具快速搭建Seam应用的基础结构。 - **准备工作**: 包括环境配置、工具安装等。 - **新建Eclipse项目**: 指导用户如何创建一个新的Seam项目。 - **创建动作**: 如何定义Seam中...

    eclipse seam工程 在线书店

    This example demonstrates the use of Seam in a Java EE 5 environment. Transaction and persistence context management is handled by the EJB container. 搞了个小例子 自己留作资料备份

    Seam JBPM Eclipse工程例子

    1. **Seam**: Seam是一个全面的Java EE框架,它简化了开发过程,特别是在集成各种Java EE组件方面。Seam提供了模型-视图-控制器(MVC)架构,支持JSF、EJB和CDI等技术。在Seam中,开发者可以轻松地处理事务管理、...

    seam插件下载地址及安装过程

    安装完成后,重启 Eclipse,如果在工程空白处右键能看到创建 Seam 工程的选项,就说明安装成功。 接下来,需要下载并配置 JBoss 服务器。在这个例子中,我们使用的是 jboss-4.2.2.GA 版本。确保安装目录无空格和...

    seam_carving 代码实现 seam

    1. **能量计算**: Seam Carving 的核心是能量函数。通常,图像的能量函数可以是图像的灰度值、梯度值或其他特征值。能量函数越高,表示该位置像素变化对整体视觉效果的影响越大。 2. **寻找最佳路径**: 在确定能量...

    seam 反向工程_没有实体生成

    1. **配置问题**:Seam的反向工程可能需要正确的配置才能工作,例如,数据库连接设置、JPA(Java Persistence API)配置或者Hibernate工具的版本不兼容等。用户需要检查相关配置文件,如persistence.xml,确保所有...

    JBOSS SEAM组件中文手册

    1. **JSF集成**: Seam与JSF的紧密结合,使得UI层的开发更为简便,通过Seam可以直接在JSF页面上操作后端数据。 2. **JPA集成**: Seam支持JPA,方便地处理数据库操作,包括实体管理和事务控制。 3. **EJB 3集成**: ...

    seam+hibernate注册例子

    1. **创建Seam项目** - 在Eclipse中,选择`File` -&gt; `New` -&gt; `Dynamic Web Project`,输入项目名称,比如"SeamHibernateReg",并确保目标运行环境为Tomcat 6.0。 - 选择项目属性,勾选"Generate web.xml ...

    Seam框架文档简述

    ### Seam框架核心知识点详解 #### 一、Seam框架简介 Seam,全称为JBoss Seam,是一款基于Java EE 5的技术栈构建的应用框架。它通过整合JSF(JavaServer Faces)与EJB 3.0(Enterprise JavaBeans 3.0)组件,并充分...

    SEAM 中文开发指南

    - **环境搭建**: - 在 **JBoss AS** 上运行示例。 - 在 **Tomcat服务器** 上运行示例。 - 运行单元测试验证功能。 ##### 1.2 第一个例子:注册示例 - **代码分析**: - **实体Bean**:`User.java` 定义了用户...

    Seam-gen生成基础项目骨架

    通过这种方式,开发者可以快速搭建起一个基于 Seam 的项目,并在此基础上进行后续的开发工作。此外,Seam-gen 生成的项目也可以很好地与 Eclipse 等 IDE 集成,利用 JBoss Tools 插件进行进一步的开发和调试。总的来...

Global site tag (gtag.js) - Google Analytics