我正在开发一个 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;
...
}
最佳答案
您需要在 tomee.xml ( http://tomee.apache.org/common-datasource-configurations.html ) 中定义数据源,并将您在 persistence.xml 中的 tomee.xml (id) 上定义的名称指定为 jta-data-source。
关于mysql - 如何在 TomEE 中的 java 应用程序中连接 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21947418/