OrientDB“未找到引擎 'remote'”
OrientDB 'engine 'remote' was not found'
我正在使用 community orientdb 2.2.12
。当我 运行 IntelliJ 中的应用程序时,一切正常。但是,当我编译项目时出现以下错误:
Caused by: com.orientechnologies.orient.core.exception.OConfigurationException: Error on opening database: the engine 'remote' was not found. URL was: remote:xxxxxx/test1. Registered engines are: [memory, plocal]
DB name="remote:xxxxxx/test1"
at com.orientechnologies.orient.core.Orient.loadStorage(Orient.java:462)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.<init>(ODatabaseDocumentTx.java:171)
... 13 more
POM:
<dependency>
<groupId>com.orientechnologies</groupId>
<artifactId>orientdb-core</artifactId>
<version>${orientdb-version}</version>
</dependency>
<dependency>
<groupId>com.orientechnologies</groupId>
<artifactId>orientdb-graphdb</artifactId>
<version>${orientdb-version}</version>
</dependency>
<dependency>
<groupId>com.tinkerpop.blueprints</groupId>
<artifactId>blueprints-core</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>com.orientechnologies</groupId>
<artifactId>orientdb-client</artifactId>
<version>${orientdb-version}</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna-platform</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>com.googlecode.concurrentlinkedhashmap</groupId>
<artifactId>concurrentlinkedhashmap-lru</artifactId>
<version>1.4.2</version>
</dependency>
我检查了 Shaded JAR,它包含所有 orientdb-client-*
。
抛出异常的代码:
public OrientGraphFactory factory() {
final int THREADS = Runtime.getRuntime().availableProcessors() + 1;
return new OrientGraphFactory(
AppConfig.getDatabaseConnectionString(),
AppConfig.getDatabaseUsername(),
AppConfig.getDatabaseSecret()).setupPool(THREADS, THREADS + 10);
}
AFAIU,您正在尝试使用您的应用程序代码和 OrientDB 代码构建一个 uberJar。要包含正确的依赖项,我的建议是从发行版 pom.xml:
复制列表
https://github.com/orientechnologies/orientdb/blob/master/distribution/pom.xml
为什么它在 IntelliJ 中有效?好吧,IDE,即使是 Eclipse,也只有一个类路径,其中包括测试源和测试 jar。
当你用 maven 构建时,它有一个 "test" 类路径,与想法中的相同,还有一个 运行time 类路径没有测试 jar(并且没有测试 jar 的传递依赖!!!)。
关于远程连接,您需要一个 运行ning 独立的 OrientDB 服务器来连接,或者至少您的应用程序应该 运行 一个嵌入式服务器。
希望对您有所帮助。
我正在使用 community orientdb 2.2.12
。当我 运行 IntelliJ 中的应用程序时,一切正常。但是,当我编译项目时出现以下错误:
Caused by: com.orientechnologies.orient.core.exception.OConfigurationException: Error on opening database: the engine 'remote' was not found. URL was: remote:xxxxxx/test1. Registered engines are: [memory, plocal]
DB name="remote:xxxxxx/test1"
at com.orientechnologies.orient.core.Orient.loadStorage(Orient.java:462)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.<init>(ODatabaseDocumentTx.java:171)
... 13 more
POM:
<dependency>
<groupId>com.orientechnologies</groupId>
<artifactId>orientdb-core</artifactId>
<version>${orientdb-version}</version>
</dependency>
<dependency>
<groupId>com.orientechnologies</groupId>
<artifactId>orientdb-graphdb</artifactId>
<version>${orientdb-version}</version>
</dependency>
<dependency>
<groupId>com.tinkerpop.blueprints</groupId>
<artifactId>blueprints-core</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>com.orientechnologies</groupId>
<artifactId>orientdb-client</artifactId>
<version>${orientdb-version}</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna-platform</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>com.googlecode.concurrentlinkedhashmap</groupId>
<artifactId>concurrentlinkedhashmap-lru</artifactId>
<version>1.4.2</version>
</dependency>
我检查了 Shaded JAR,它包含所有 orientdb-client-*
。
抛出异常的代码:
public OrientGraphFactory factory() {
final int THREADS = Runtime.getRuntime().availableProcessors() + 1;
return new OrientGraphFactory(
AppConfig.getDatabaseConnectionString(),
AppConfig.getDatabaseUsername(),
AppConfig.getDatabaseSecret()).setupPool(THREADS, THREADS + 10);
}
AFAIU,您正在尝试使用您的应用程序代码和 OrientDB 代码构建一个 uberJar。要包含正确的依赖项,我的建议是从发行版 pom.xml:
复制列表https://github.com/orientechnologies/orientdb/blob/master/distribution/pom.xml
为什么它在 IntelliJ 中有效?好吧,IDE,即使是 Eclipse,也只有一个类路径,其中包括测试源和测试 jar。 当你用 maven 构建时,它有一个 "test" 类路径,与想法中的相同,还有一个 运行time 类路径没有测试 jar(并且没有测试 jar 的传递依赖!!!)。
关于远程连接,您需要一个 运行ning 独立的 OrientDB 服务器来连接,或者至少您的应用程序应该 运行 一个嵌入式服务器。
希望对您有所帮助。