私は Railo 4.2.2/Apache に FW/1 アプリを持っていますが、何らかの理由でonApplicationStart
すべてのリクエストで呼び出しています。再初期化コードではないことがわかります-callStackGet()
ダンプに入れるsetupApplication
と、ルート呼び出しが onApplicationStart であることがわかります(initフックを介したものではありません)。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' );
}
}