0

Spring Security を学ぶための最初のステップとして、Spring Greenhouse プロジェクトを確認しました。プロジェクトは正常に動作しますが、次のシナリオについて疑問に思っていました:

標準と組み込みの 2 つの構成があります。javadoc には、組み込みがデフォルトであると記載されています。標準モードで実行する方法がわかりません。誰もこれを試したことがありますか?

次に、組み込みモードで、MySql で実行するために次のコードでコードを少し変更しましたが、驚いたことに、アプリケーションはまったく起動しません。次のエラーがスローされます。

throw new RuntimeException("Unable to determine database version", e);

@Bean(destroyMethod="shutdown")
public DataSource dataSource() {
    // EmbeddedDatabaseFactory factory = new EmbeddedDatabaseFactory();
    // factory.setDatabaseName("greenhouse");
    // factory.setDatabaseType(EmbeddedDatabaseType.);
    DriverManagerDataSource mysqldataSource = new DriverManagerDataSource();
    mysqldataSource.setDriverClassName("com.mysql.jdbc.Driver");
    mysqldataSource.setUrl("jdbc:mysql://localhost/greenhouse?useConfigs=maxPerformance&characterEncoding=utf8");
    mysqldataSource.setUsername("root");
    mysqldataSource.setPassword("mysql");
    return populateDatabase(mysqldataSource);       
}

誰でもこれについて私を助けてもらえますか?

4

2 に答える 2

0

私は自分でそれを理解しました。web.xml にタグがあり、埋め込みから標準に変更しました。問題は、データベース バージョン テーブルを作成していた sql クエリにあり、mysl の苦情ではありませんでした。mysql の苦情ではない他のクエリもありました。SQLクエリを変更したところ、すべてが期待どおりに機能するようになりました。私が次にやろうとしているのは、ある種の og 汎用データベース クエリ ジェネレータを使用することです。これにより、将来、SQL の代わりに post gre sql を使用することに気が変わった場合にクエリを変更する必要がなくなります。皆様のご支援とご協力をよろしくお願いいたします。

于 2013-01-21T10:16:22.410 に答える
0

取得している例外から判断すると、関心のあるファイルはGenericDatabaseUpgrader.java です

そこにあるコードの半分以上は、DatabaseVersion存在しない場合に作成されるテーブルを参照しています。あなたがすでにそれを持っているとは思えず、例外タイプ ( SQLException) から判断すると、参照されるテーブルの作成/挿入/取得に失敗していると言う傾向があります。

テーブルがあるかどうかを確認して、そこから移動できます。

また、挿入しようとしているコードから判断すると、connection = dataSource.getConnection()犯人の可能性も考えられます。

PS標準/組み込みに関しては、VMパラメーターまたはmaven設定を2つに切り替えることができるようです。公式フォーラム、特にこのトピックで情報を確認してください

于 2013-01-17T11:26:33.317 に答える