0

私はWebアプリケーション(GWT/Vaadinベース)を持っていますが、これまでは

mvn 桟橋:実行

今度は、別の Web サーバー (Jetty も) で実行して、データベース接続の問題を解決したいと考えています。

WAR ファイルには、persistence.xml ファイルはありません。これが失敗の理由でしょうか?

はいの場合、持続性をどのように設定すればよいですか?

а) Java DB (Derby) を使用しています。

b) 休止状態と

c)以下に示すようにDB接続を構成します

?

前もって感謝します

ドミトリ

private void tryToOpenSession(final String aConnectionString)
        throws Throwable {
    ...

    state = PersistenceState.OPENING_CONNECTION;
    final Configuration cnf = new Configuration();
    cnf.setProperty(Environment.DRIVER,
            "org.apache.derby.jdbc.EmbeddedDriver");
    cnf.setProperty(Environment.URL, aConnectionString);
    cnf.setProperty(Environment.DIALECT, DerbyDialect.class.getName());
    cnf.setProperty(Environment.SHOW_SQL, "true");
    cnf.setProperty(Environment.HBM2DDL_AUTO, "update");
    cnf.setProperty(Environment.CURRENT_SESSION_CONTEXT_CLASS, "thread");

    cnf.addResource("persistence/Entity1.hbm.xml");
    cnf.addResource("persistence/Entity2.hbm.xml");
    ...
    cnf.addResource("persistence/EntityN.hbm.xml");

    sessionFactory = cnf.buildSessionFactory();

    session = getSession();

    ...

    state = PersistenceState.CONNECTION_OPEN;
}

UPD: 例外は次のとおりです。

java.lang.NoClassDefFoundError: クラス org.apache.derby.jdbc.EmbeddedDriver を初期化できませんでした
    java.lang.Class.forName0(ネイティブメソッド) ~[na:1.6.0_20]
    java.lang.Class.forName(Class.java:186) ~[na:1.6.0_20] で
    org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:80) で ~[hibernate-core-3.6.0.Final.jar:3.6.0.Final]
    org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:143) で ~[hibernate-core-3.6.0.Final.jar:3.6.0.Final]
    org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:84) で ~[hibernate-core-3.6.0.Final.jar:3.6.0.Final]
    org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:459) で ~[hibernate-core-3.6.0.Final.jar:3.6.0.Final]
    org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:91) で ~[hibernate-core-3.6.0.Final.jar:3.6.0.Final]
    org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2833) で ~[hibernate-core-3.6.0.Final.jar:3.6.0.Final]
    org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2829) で ~[hibernate-core-3.6.0.Final.jar:3.6.0.Final]
    org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1840) で ~[hibernate-core-3.6.0.Final.jar:3.6.0.Final]
4

1 に答える 1

1

例外はorg.apache.derby.jdbc.EmbeddedDriver、その依存関係の一部がクラスパスで見つからないことを明確に示しています。通常、必要な jar ファイルを に配置する必要があります(または、Maven に自動的に配置させるために/WEB-INF/libそれらを宣言します)。pom.xml

于 2011-04-01T16:06:51.023 に答える