我不明白为什么在抛出运行时异常时调用after()
的{{1}}函数。我期望调用DBConnectionFilter
函数并回滚事务。但是真正发生的是,将调用onException()
函数来提交事务并关闭数据库连接,然后调用CatchAllFilter / kind of global filter /中的after()
函数。
AppControllerConfig类:
onException
PeopleController创建函数:
public class AppControllerConfig extends AbstractControllerConfig{
public void init(AppContext context) {
add(new CatchAllFilter(), new DBConnectionFilter("default",true));
}
}
答案 0 :(得分:0)
因此,查看ActiveWeb的代码,我可以看到该事务首先被回滚,然后被提交。我假设一旦事务回滚,驱动程序将丢弃尚未提交的数据,但是在我的测试中,MariaDB / MySQL并没有发生这种情况。换句话说,我通过一个简单的ActiveWeb项目在笔记本电脑上复制了此问题。因此,此错误已归档:https://github.com/javalite/activeweb/issues/389,并且已修复。您可以从http://repo.javalite.io/org/javalite/activeweb/中拉出一个新的2.1-SNAPSHOT版本,它应该可以工作。