The maven-assembly-plugin is likely not including META-INF/services from 
the jar files which means the service framework will not work correctly.  
Check for the presence of META-INF/services in the output jar (uber-jar).  
I think you'll have to use the shade plugin... or better yet don't use 
maven :0).

On Tuesday, October 21, 2014 12:48:22 PM UTC-4, Curtis Mosters wrote:
>
> We want to import data on a Linux system. So we have 2 Java files for the 
> import. One (*OrientDBMain.java*) is for creating an object that is doing 
> all the work. The other (*OrientDB.java*) contains all the database 
> functions like setting an index and so on. The second files starts with:
>  
>    public class OrientDB {
>         private OrientGraphFactory factoryGraph;
>         private ODatabaseDocumentTx db;
>         private String csvPath;
>     
>         @SuppressWarnings("resource")
>         public OrientDB(String dbPath) {
>             OGlobalConfiguration.STORAGE_KEEP_OPEN.setValue(true);
>             OGlobalConfiguration.ENVIRONMENT_CONCURRENT.setValue(false);
>             db = new ODatabaseDocumentTx(dbPath).create();
>         }
>     ...
>
> Running this in Eclipse on a Windows and MAC works well. No error and data 
> is correctly imported. 
>
> But now we wanted to run this on our Linux system. So we setup a Maven 
> project (m2e) and exported a Jar file with all the dependencies here:
>
>   
>   <project xmlns="http://maven.apache.org/POM/4.0.0"; xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance";
>       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
> http://maven.apache.org/xsd/maven-4.0.0.xsd";>
>       <modelVersion>4.0.0</modelVersion>
>     
>       <groupId>mapegy</groupId>
>       <artifactId>orientdbcsv</artifactId>
>       <version>0.0.2-SNAPSHOT</version>
>       <packaging>jar</packaging>
>     
>       <name>orientdbcsv</name>
>       <url>http://maven.apache.org</url>
>     
>       <properties>
>         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
>       </properties>
>     
>       <dependencies>
>         <dependency>
>           <groupId>junit</groupId>
>           <artifactId>junit</artifactId>
>           <version>3.8.1</version>
>           <scope>test</scope>
>         </dependency>
>         <dependency>
>             <groupId>com.orientechnologies</groupId>
>             <artifactId>orientdb-graphdb</artifactId>
>             <version>2.0-M1</version>
>         </dependency>
>       </dependencies>
>       <build>
>       <plugins>
>     <plugin>
>     <artifactId>maven-assembly-plugin</artifactId>
>       <configuration>
>         <archive>
>           <manifest>
>                 <mainClass>mapegy.orientdbcsv.OrientDBMain</mainClass>
>               </manifest>
>         </archive>
>         <descriptorRefs>
>         <descriptorRef>jar-with-dependencies</descriptorRef>
>         </descriptorRefs>
>       </configuration>
>       <executions>
>         <execution>
>           <id>make-assembly</id>
>         <phase>package</phase>
>           <goals>
>             <goal>single</goal>
>           </goals>
>         </execution>
>       </executions>
>     </plugin>
>     <plugin>
>       <groupId>org.apache.maven.plugins</groupId>
>       <artifactId>maven-compiler-plugin</artifactId>
>       <version>2.3.2</version>
>       <configuration>
>       <source>${jdk.version}</source>
>       <target>${jdk.version}</target>
>       </configuration>
>       </plugin>
>     </plugins>
>       </build>
>     </project>
>
>
>
> But if we run that Jar now we are getting some errors. They say that there 
> is some OCommandExecutorNotFoundException thrown. But how can that be if it 
> run great directly in Eclipse? We have 2 args {pathtoimportdata, 
> pathtodestinationdb}.
>
>   
>   C:\eclipse-workspace\orientdbcsv\target>java -jar orientdbcsv-0.0.2-
> SNAPSHOT-jar
>     -with-dependencies.jar "C:\data" 
> "C:\orientdb-community-2.0-M1\databases\test"
>     Exception in thread "main" com.orientechnologies.orient.core.exception
> .ODatabase
>     Exception: Cannot create database
>             at com.orientechnologies.orient.core.db.record.
> ODatabaseRecordAbstract.c
>     reate(ODatabaseRecordAbstract.java:289)
>             at com.orientechnologies.orient.core.db.
> ODatabaseWrapperAbstract.create(
>     ODatabaseWrapperAbstract.java:61)
>             at com.orientechnologies.orient.core.db.
> ODatabaseRecordWrapperAbstract.c
>     reate(ODatabaseRecordWrapperAbstract.java:72)
>             at com.orientechnologies.orient.core.db.
> ODatabaseWrapperAbstract.create(
>     ODatabaseWrapperAbstract.java:56)
>             at com.orientechnologies.orient.core.db.
> ODatabaseRecordWrapperAbstract.c
>     reate(ODatabaseRecordWrapperAbstract.java:66)
>             at mapegy.orientdbcsv.OrientDB.<init>(OrientDB.java:36)
>             at mapegy.orientdbcsv.OrientDBMain.main(OrientDBMain.java:6)
>     Caused by: com.orientechnologies.orient.core.command.
> OCommandExecutorNotFoundExc
>     eption: Cannot find a command executor for the command request: sql.
> select count
>     (*) from ORole where name.type() not in ["STRING"] and name is not 
> null
>             at com.orientechnologies.orient.core.sql.
> OCommandExecutorSQLDelegate.par
>     se(OCommandExecutorSQLDelegate.java:48)
>             at com.orientechnologies.orient.core.sql.
> OCommandExecutorSQLDelegate.par
>     se(OCommandExecutorSQLDelegate.java:33)
>             at com.orientechnologies.orient.core.storage.OStorageEmbedded.
> command(OS
>     torageEmbedded.java:69)
>             at com.orientechnologies.orient.core.command.
> OCommandRequestTextAbstract
>     .execute(OCommandRequestTextAbstract.java:59)
>             at com.orientechnologies.orient.core.metadata.schema.
> OClassImpl.checkPer
>     sistentPropertyType(OClassImpl.java:1597)
>             at com.orientechnologies.orient.core.metadata.schema.
> OClassImpl.addPrope
>     rty(OClassImpl.java:1911)
>             at com.orientechnologies.orient.core.metadata.schema.
> OClassImpl.createPr
>     operty(OClassImpl.java:580)
>             at com.orientechnologies.orient.core.metadata.security.
> OSecurityShared.c
>     reateMetadata(OSecurityShared.java:350)
>             at com.orientechnologies.orient.core.metadata.security.
> OSecurityShared.c
>     reate(OSecurityShared.java:282)
>             at com.orientechnologies.orient.core.metadata.security.
> OSecurityProxy.cr
>     eate(OSecurityProxy.java:70)
>             at com.orientechnologies.orient.core.metadata.OMetadataDefault
> .create(OM
>     etadataDefault.java:84)
>             at com.orientechnologies.orient.core.db.record.
> ODatabaseRecordAbstract.c
>     reate(ODatabaseRecordAbstract.java:269)
>             ... 6 more
>
> So the question is right now. Why does it throw that error and why does it 
> work properly in Eclipse. And maybe do you know other way to compile import 
> scripts for OrientDB in an easy way with less effort.
>
> Thank you. 
>
> Edit: I already got the tip to use Maven Shade, but did not work for me. 
> Do someone has an idea except this. Or maybe can tell me how to use the jar 
> without dependencies to get it running. That would be amazing =)
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to