2016-04-06 13 views
0

私はHibernate、JavaEE Persistence、組み込みH2データベースに苦労しています。私は次のスタックトレースを取得組み込みH2データベースの接続エラー - 間違ったユーザ名とパスワード

<persistence-unit name="iot_pu"> 

    <provider>org.hibernate.ejb.HibernatePersistence</provider> 
    <properties> 

     <property name="hibernate.connection.driver_class" value="org.h2.Driver"/> 
     <property name="hibernate.connection.url" value="jdbc:h2:/tmp/databases/iot;AUTO_SERVER=TRUE;MVCC=true"/> 
     <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/> 
     <property name="hibernate.hbm2ddl.auto" value="create"/> 
     <property name="hibernate.show_sql" value="true"/> 

    </properties> 

</persistence-unit> 

::私はのIntelliJとの接続をテストする場合

javax.persistence.PersistenceException: Unable to build entity manager factory 

     at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:66) 
     at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55) 
     at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39) 
     at iot.utils.AbstractTestSuite.setUpClass(AbstractTestSuite.java:22) 
     at iot.utils.AbstractTestSuite.getEmf(AbstractTestSuite.java:37) 
     at iot.utils.AbstractTest.init 
Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] 
Caused by: org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect 
Caused by: org.h2.jdbc.JdbcSQLException: Falscher Benutzer Name oder Passwort 
Wrong user name or password [28000-191] 
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:345) 
    at org.h2.message.DbException.get(DbException.java:179) 
    at org.h2.message.DbException.get(DbException.java:155) 
    at org.h2.message.DbException.get(DbException.java:144) 
    at org.h2.engine.Engine.validateUserAndPassword(Engine.java:333) 
    at org.h2.engine.Engine.createSessionAndValidate(Engine.java:161) 
    at org.h2.engine.Engine.createSession(Engine.java:136) 
    at org.h2.engine.Engine.createSession(Engine.java:28) 
    at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349) 
    at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:107) 
    at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:91) 
    at org.h2.Driver.connect 

それが接続することを言います

私はpersistence.xmlで次のセクションを持っています問題なく動作します - ユーザー名もパスワードもありません。 enter image description here enter image description here

問題が発生するライン(AbstractTestSuite.java:22は)

Persistence.createEntityManagerFactory("iot_pu"); 

が、それは私がMavenを経由してインポートする何かを忘れてしまったたこと、場合ことはできますか?と言いますか

......... 
     <dependency> 
      <groupId>com.h2database</groupId> 
      <artifactId>h2</artifactId> 
      <version>1.4.191</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>5.1.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>5.1.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>5.2.4.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate.javax.persistence</groupId> 
      <artifactId>hibernate-jpa-2.0-api</artifactId> 
      <version>1.0.1.Final</version> 
     </dependency> 
......... 
+1

私はあなたが – Jeet

+0

応答がhttps://stackoverflow.com/help/someoneをいただければ幸い接続URLにユーザー名とパスワードを逃したと思います-answers – c0der

答えて

2

あなたのpersistence.xmlhibernate.connection.usernamehibernate.connection.passwordプロパティが欠落している、またはあなたの接続URL(例:"jdbc:oracle:thin:user/[email protected]:1521:SMIDVINT")でそれらを直接挿入することができます。

+0

私はすでにそれらを追加しましたが、それでも同じエラーがあります。私はまた、デフォルトのユーザー名 "sa"を試しました...しかし、それは動作しませんでした – pichlbaer

0

あなたの設定が正しいことを確認するために、このとの接続をテストします。

/** 
    * Connect to H2db. 
    * calling example: connect("jdbc:h2:/Resources/databases/dbName", "JohnD", "secret") 
    */ 
    public static Connection connect (String dbPath, String userName, String password) 
        throws ClassNotFoundException, SQLException, JdbcSQLException { 

     Class.forName("org.h2.Driver"); 
     String dbURL= dbPath + ";IGNORECASE=TRUE;MODE=MySQL;IFEXISTS=TRUE"; 

     return DriverManager.getConnection(dbURL,userName,password); 
    } 
関連する問題