2016-11-15 2 views
1

Im используя community orientdb 2.2.12. Когда я запускаю приложение внутри IntelliJ, все работает нормально. Однако, когда я скомпилировать проект я получаю следующее сообщение об ошибке:OrientDB 'engine' remote 'не был найден'

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> 

Я проверил затененную 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); 

} 
+0

Привет, можете ли вы разместить часть кода при использовании пульта дистанционного управления? Thx заблаговременно –

+0

@MichelaBonizzi добавил thx – tarka

+0

В этой части кода я не вижу «remote: xxxxxx/test1». Это все или просто фрагмент? –

ответ

2

AFAIU вы пытаетесь построить uberJar с кодом приложения и OrientDB кода. Чтобы включить правильную зависимость, мое предложение, чтобы скопировать список из распределения pom.xml:

https://github.com/orientechnologies/orientdb/blob/master/distribution/pom.xml

Почему это работает в IntelliJ? Ну, в среде IDE, даже Eclipse, есть один путь к классам, который включает в себя тестовые источники и тестовые банки. Когда вы строите с помощью maven, у него есть «тестовый» путь к классу, такой же, как и в идее, и путь пути выполнения без тестовых банок (и без транзитивной зависимости тестовых банок !!!).

О удаленном соединении, для подключения к нему необходим автономный сервер OrientDB или, по крайней мере, приложение должно запускать встроенный сервер.

Надеюсь, что эта помощь.

Смежные вопросы