【问题标题】:How to connect a MySQL database in a java application in TomEE如何在 TomEE 的 Java 应用程序中连接 MySQL 数据库
【发布时间】:2014-03-23 17:37:20
【问题描述】:

我正在开发一个 Web 应用程序(Eclipse、TomEE)并尝试与 MySQL 数据库进行通信:

  • 我已经创建了数据库
  • 我已经包含了 EclipseLink 和 MySQL-Driver
  • 连接正常(我试过 ping 没问题)

当我尝试持久化数据时出现此错误

Grave: could not reopen database
org.hsqldb.HsqlException: Database lock acquisition failure: lockFile:org.hsqldb.persist.LockFile@81911f7a[file =C:\Program Files\eclipse\data\hsqldb\hsqldb.lck, exists=false, locked=false, valid=false, ] method: openRAF reason: java.io.FileNotFoundException: C:\Program Files\eclipse\data\hsqldb\hsqldb.lck (Le chemin d’accès spécifié est introuvable)
    at org.hsqldb.error.Error.error(Unknown Source)
    at org.hsqldb.error.Error.error(Unknown Source)
    at org.hsqldb.persist.LockFile.newLockFileLock(Unknown Source)
    at org.hsqldb.persist.Logger.acquireLock(Unknown Source)
    at org.hsqldb.persist.Logger.open(Unknown Source)
    at org.hsqldb.Database.reopen(Unknown Source)
    at org.hsqldb.Database.open(Unknown Source)
    at org.hsqldb.DatabaseManager.getDatabase(Unknown Source)
    at org.hsqldb.DatabaseManager.newSession(Unknown Source)
    at org.hsqldb.jdbc.JDBCConnection.<init>(Unknown Source)
    at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source)
    at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source)
    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:278)
    ...

我不明白为什么它是关于 hsqldb 而我已经配置了 MySQL

我在 src/META-INF 中有 persistence.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">


    <persistence-unit name="UP" transaction-type="JTA"> 
        <class>jpa.User</class>
</persistence-unit>
</persistence>

我这样称呼 entityManager:

@Stateless
public class UserFacade extends AbstractFacade<User> implements UserFacadeLocal {
    @PersistenceContext (unitName="UP")
    private EntityManager em;
    ...
}

【问题讨论】:

    标签: mysql jakarta-ee entitymanager persistence.xml apache-tomee


    【解决方案1】:

    您需要在 tomee.xml (http://tomee.apache.org/common-datasource-configurations.html) 中定义您的数据源,并在您的 persistence.xml 中将您在 tomee.xml (id) 上定义的名称指定为 jta-data-source。

    【讨论】:

      【解决方案2】:

      你需要添加:

      <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
      

      到persistence.xml 文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-01
        • 2018-10-23
        • 2012-07-28
        • 1970-01-01
        • 2014-12-10
        • 1970-01-01
        相关资源
        最近更新 更多