繁体   English   中英

持久性配置问题

[英]Persistence configuration question

我有一个Web应用程序(基于GWT / Vaadin),到目前为止,我是通过

mvn码头:运行

现在,我想在另一个Web服务器(也是Jetty)上运行它,并遇到数据库连接问题。

在WAR文件中,没有persistence.xml文件。 这可能是失败的原因吗?

如果是,我应该如何配置持久性,如果

а)我正在使用Java DB(Derby),

b)Hibenate和

c)现在配置数据库连接,如下所示

提前致谢

德米特里

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: Could not initialize class org.apache.derby.jdbc.EmbeddedDriver
    at java.lang.Class.forName0(Native Method) ~[na:1.6.0_20]
    at java.lang.Class.forName(Class.java:186) ~[na:1.6.0_20]
    at org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:80) ~[hibernate-core-3.6.0.Final.jar:3.6.0.Final]
    at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:143) ~[hibernate-core-3.6.0.Final.jar:3.6.0.Final]
    at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:84) ~[hibernate-core-3.6.0.Final.jar:3.6.0.Final]
    at org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:459) ~[hibernate-core-3.6.0.Final.jar:3.6.0.Final]
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:91) ~[hibernate-core-3.6.0.Final.jar:3.6.0.Final]
    at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2833) ~[hibernate-core-3.6.0.Final.jar:3.6.0.Final]
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2829) ~[hibernate-core-3.6.0.Final.jar:3.6.0.Final]
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1840) ~[hibernate-core-3.6.0.Final.jar:3.6.0.Final]

异常清楚地表明,在类路径中找不到org.apache.derby.jdbc.EmbeddedDriver或其某些依赖项。 通常,您需要将所需的jar文件放入/WEB-INF/lib (或在pom.xml声明它们,以使Maven自动放置它们)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM