2

私は 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' );
    }

}
4

1 に答える 1