2016-11-15 7 views
1

Im mit der community orientdb 2.2.12. Wenn ich die App in IntelliJ laufe, funktioniert alles gut. Allerdings, wenn ich das Projekt kompilieren bekomme ich folgende Fehlermeldung:OrientDB 'Engine' Remote 'wurde nicht gefunden'

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> 

ich die schattierten JAR geprüft und es enthält alle orientdb-client-*.

Der Code, wo die Ausnahme ausgelöst wird:

public OrientGraphFactory factory() { 

    final int THREADS = Runtime.getRuntime().availableProcessors() + 1; 

    return new OrientGraphFactory(
     AppConfig.getDatabaseConnectionString(), 
     AppConfig.getDatabaseUsername(), 
     AppConfig.getDatabaseSecret()).setupPool(THREADS, THREADS + 10); 

} 
+0

Hallo, können Sie den Teil des Codes veröffentlichen, wenn Sie remote verwenden? Thx im Voraus –

+0

@MichelaBonizzi hinzugefügt Thx – tarka

+0

ich sehe nicht "remote: xxxxxx/test1" in diesem Teil des Codes. Ist das alles oder nur ein Ausschnitt? –

Antwort

2

AFAIU Sie versuchen, eine uberJar mit Ihrem App-Code und Orientdb Code zu bauen. So schließen Sie die richtigen Abhängigkeiten, ist mein Vorschlag, die Liste aus der Verteilung pom.xml zu kopieren:

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

Warum funktioniert es in IntelliJ? Nun, die IDE, sogar Eclipse, hat einen einzigen Klassenpfad, der Testquellen und Testgläser enthält. Wenn Sie mit Maven erstellen, hat es einen "Test" -Klassenpfad, den gleichen wie den in Idee, und einen Laufzeitklassenpfad ohne Test-Jars (und ohne transitive Abhängigkeit von Test-Jars !!!).

Über die Remoteverbindung benötigen Sie einen eigenständigen OrientDB-Server, mit dem Sie eine Verbindung herstellen können, oder zumindest sollte Ihre Anwendung einen eingebetteten Server ausführen.

Hoffe diese Hilfe.

Verwandte Themen