我在 Railo 4.2.2/Apache 上有一个 FW/1 应用程序,出于某种原因,它会调用onApplicationStart
每个请求。我可以告诉它不是任何重新初始化代码 - 放入callStackGet()
转储中setupApplication
并且可以看到根调用是 onApplicationStart (不是通过任何初始化挂钩)。Railo 中是否有任何已知的错误会导致这种情况?我已经仔细检查了应用程序超时(1 天)和 FW/1 设置 - 它已关闭 - 因此应用程序没有理由在每个请求上都会丢失应用程序范围。
我也看到了另一件奇怪的事情,但我不知道它是否相关。在设置应用程序中,我正在创建一个新的用户对象(通过 ORM)并在本地管理员不存在时将其持久化。我转储它并查看 ID,但是当我查询表时它不在数据库中(是的,我刷新了它)。下一页点击再次创建用户(因为它仍然不存在......)。
编辑:为 Adam 添加持久对象代码。
function setupApplication() {
// bean factory should look in the model tree for services and beans
var bf = new framework.ioc( "/com/sharp/model" );
setBeanFactory( bf );
ormReload();
if( getEnvironment() == 'dev' ){
writeLog('Checking for dev user');
if( !arrayLen( ormExecuteQuery('from User where username = ?', ['admin']) ) ){
var user = new com.sharp.model.user.User({username: 'admin', password: hash('p@ssw3rd'), isAdmin: true});
entitySave( user );
ormFlush();
writeDump(user);
writeDump(callStackGet());
writeLog('User admin created')
}
else{
var user = bf.getBean('userService').getByUsername('admin');
writeLog('Dev admin user already exists. Done.')
}
var auth = bf.getBean('userService').authenticate( 'admin', 'p@ssw3rd' );
}
}