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

在seam项目启动后执行数据库操作

    博客分类:
  • seam
阅读更多

项目启动时执行些初始化数据操作,问题是事务不能提交,这样虽然方法正常执行了但数据却没进入数据库。以下是在网上搜索的方法。

@Name("initData")
public class InitData {

@Observer("org.jboss.seam.postInitialization")
    public void init() {

。。。

数据库操作

。。。。。

}

@Observer("org.jboss.seam.postInitialization")表明项目启动成功后调用init()方法,这是没法提交事务的,因为这时还没有启用事务的自动提交框架。

我认为有两种解决办法 1)通过ejb(成功验证) 2)定时任务(理论上,没有验证)

ejb方式

@Local
public  interface InitDataLocal {
    public void init();
}

 

 

@Stateless
@Name("initData")
public class InitData implements InitDataLocal {

    @In
    private EntityManager entityManager;

    @Observer("org.jboss.seam.postInitialization")
    public void init() {

    。。。

   数据库操作

   。。。。。

   }

原因分析:同一ear中ejb的启动是早于web的,这样和正常调用ejb没什么区别,ejb本身的事务来保证他的提交。

定时任务

示例代码

    @Observer("org.jboss.seam.postInitialization")
    public void init() {

schedule;//60秒后执行

    Events.instance().raiseTimedEvent("initTimer", schedule)

   }

 

@Observer("initTimer")

public void initTimer(){

    。。。

   数据库操作

   。。。。。

}

 

 

 

 

0
0
分享到:
评论

相关推荐

    Seam2.0GA 中文开发指南

    在JBoss AS上部署和运行Seam应用,首先需要确保JBoss AS服务器已经正确安装并启动。接着,将Seam应用的部署包放置到服务器的相应目录中,并通过管理控制台或命令行工具启动应用。 **1.1.2 在Tomcat服务器上运行示例...

    SEAM 中文开发指南

    - **建立一个新的Eclipse项目**:通过 Eclipse 创建 SEAM 项目。 - **创建新动作**:添加新的业务逻辑。 - **创建有动作的表单**:实现表单验证和提交。 - **从现有数据库生成应用程序**:利用现有的数据库架构自动...

    使用JBoss Studio開發Seam框架專案(圖式教學)

    3. **CRUD操作**: 使用Seam的EntityManager来执行数据库的增删改查操作,Seam会自动处理事务管理。 **五、部署与测试** 1. **配置服务器**: 在JBoss Studio中添加和配置JBoss服务器实例,确保服务器配置与项目匹配...

    jboss seam 2.01GA REF DOC

    - **创建项目**:在 Eclipse 中创建一个新的 Java 项目。 - **导入模板**:使用 seam-gen 生成的模板初始化项目。 **2.3 创建新动作** - **定义动作**:通过 seam-gen 自动生成的动作模板定义新的动作类。 - **...

    seam-gen命令解析文档

    需要注意的是,一旦执行该命令,就不能恢复项目,因此在使用时需谨慎操作。 5. **`deploy`** - **命令示例**:`seam.bat deploy` - **作用**:将项目(打包成EAR或WAR格式)及其数据源部署到JBoss服务器上。 6....

    Seam Tutorial文档

    只需将示例项目导入到JBoss AS环境中,即可启动并测试示例应用。 ##### 1.1.2 在Tomcat上运行示例 同样地,在Tomcat环境下运行Seam示例也非常简单,不需要额外的配置步骤。只需要按照标准的Web应用部署流程,将...

    JBOSS SEAM

    在Seam中,实体类通常与数据库表相对应,通过Seam提供的持久化机制(如Hibernate)进行数据的存取操作。 ##### 1.2.1.2 The stateless session bean class: RegisterAction.java RegisterAction类是一个无状态会话...

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

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

    jbossas7_seamremoting_jpa_小例子简

    在这个"remoting-jpa-testprog"项目中,我们可以期待看到如何在JBoss AS 7上配置和部署一个应用,该应用利用Seam Remoting进行远程方法调用,并使用JPA和Hibernate来管理持久化数据。开发者可能已经创建了一个简单的...

    Hibernate实战(第2版 中文高清版)

     2.2 启动Java Persistence项目   2.2.1 使用Hibernate Annotations   2.2.2 使用Hibernate EntityManager   2.2.3 引入EJB组件   2.2.4 切换到Hibernate接口   2.3 反向工程遗留数据库   2.3.1 创建...

    JBoss Application Server4.2 Getting_Started_Guide

    在Unix/Linux系统中,执行该脚本即可启动服务器。 - **1.2.4 停止服务器**:停止服务器同样简单,只需执行`bin/shutdown.sh`(Unix/Linux)或`bin/shutdown.bat`(Windows)即可。 - **1.2.5 在Microsoft Windows...

Global site tag (gtag.js) - Google Analytics