1

我是 ObjectDB 的新手,不确定我是否在这里做错了,但我遇到了一些问题,希望社区可以帮助我。

首先是当服务器运行时无法在资源管理器中查看数据库,这很烦人。如果先打开资源管理器,则 tomcat/server/idea 将崩溃并烧毁。

我明白了: 愤怒

另一方面,如果资源管理器已打开并且我尝试重新启动服务器:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is com.objectdb.o._PersistenceException: Attempt to open a database file '/Users/SteveGreen/Development/Dev Workspace/RatedPlate_Java/RatedPlate/target/RatedPlate/WEB-INF/db/ratedplate.odb' that is currently in use by another process
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978)

然后我需要在资源管理器中关闭连接并重新启动服务器,但是我现在收到的传奇仍在继续:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is com.objectdb.o._PersistenceException: Attempt to open a database file '/Users/SteveGreen/Development/Dev Workspace/RatedPlate_Java/RatedPlate/target/RatedPlate/WEB-INF/db/ratedplate.odb' with an old unsupported format
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978)

我需要在再次继续之前清理安装 mV 版本。

我根据 pom 使用版本 2.2.5,资源管理器来自版本 2.6.3,因为我下载的映射到我的版本的早期 jar 没有显示查询选项。如果我向 IDE 建议我现在使用 2.2.5 以外的版本,那么一切都会崩溃,我不确定最好的做法是什么。正如你可以想象的那样,它构成了一个非常糟糕的调试环境。

非常感谢任何帮助,谢谢!

来自我的 pom:com.objectdb objectdb 2.2.5

持久性:

<?xml version="1.0" encoding="UTF-8"?>

http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">

<persistence-unit name="RatedPlateDB" transaction-type="RESOURCE_LOCAL">
    <provider>com.objectdb.jpa.Provider</provider>
    <properties>
        <property name="javax.persistence.jdbc.url" value="$objectdb/db/ratedplate.odb"/>
        <property name="javax.persistence.jdbc.user" value="admin"/>
        <property name="javax.persistence.jdbc.password" value="admin"/>
    </properties>
</persistence-unit>

编辑:我相信我已经找到并修复了升级问题 - 2.6.3 不附带 Jta 或持久性

详情: http: //m2.objectdb.com

更新的pom:

  <dependency>
        <groupId>com.objectdb</groupId>
        <artifactId>objectdb</artifactId>
        <version>2.6.3</version>
    </dependency>
    <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>javax.persistence</artifactId>
        <version>2.1.0</version>
    </dependency>
    <dependency>
        <groupId>javax.transaction</groupId>
        <artifactId>jta</artifactId>
        <version>1.1</version>
    </dependency>
4

1 回答 1

2

In embedded mode the database file is locked by one process, so you cannot access the same database (in embedded mode) concurrently in the Explorer and in your application.

To access a database by more than one process at the same time use either client-server mode or embedded-server mode.

于 2015-09-07T20:45:20.750 回答