Orientdb: Cannot find a command executor for the command request error on Windows

Created on 12 Oct 2015  路  6Comments  路  Source: orientechnologies/orientdb

I have an embedded version of OrientDB 2.1.2. When I execute the following SQL command on a Linux or OSX OS it works great:

DELETE VERTEX Team WHERE @rid=16:1

I also tried the following variations just in case all with the same outcome:

DELETE VERTEX Team WHERE @rid='16:1'
DELETE VERTEX Team WHERE @rid=#16:1
DELETE VERTEX Team WHERE @rid='#16:1'

However, if I run the exact same command(s) on a Windows OS I get the following error:

Cannot find a command executor for the command request: sql.DELETE VERTEX Team WHERE @rid=16:1

All the other SQL queries seem to work on all the OS.

question

Most helpful comment

@maggiolo00 Yes it did thanks. I specifically had to add:

<transformer
                                    implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                    <resource>META-INF/services/com.orientechnologies.orient.core.sql.functions.OSQLFunctionFactory</resource>
                                </transformer>
                                <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                    <resource>META-INF/services/com.orientechnologies.orient.core.sql.OCommandExecutorSQLFactory</resource>
                                </transformer>

You can go ahead and close this issue. Thanks for your help.

All 6 comments

Seems you didn't include the orientdb-graphdb.jar.

Nope I have it:

<dependency>
        <groupId>com.orientechnologies</groupId>
        <artifactId>orientdb-graphdb</artifactId>
        <version>${orientdb-version}</version>

        <exclusions>
            <exclusion>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils-core</artifactId>
            </exclusion>
            <exclusion>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
            </exclusion>
            <exclusion>
                <groupId>stax</groupId>
                <artifactId>stax-api</artifactId>
            </exclusion>
        </exclusions>
</dependency>

N.B. I have some exclusions as those dependencies are already declared in my project.

Ok so after further investigation it does not have anything to do with the OS! In my pom.xml I declare the following:

<!-- As defined: http://orientdb.com/docs/last/Graph-Database-Tinkerpop.html  -->
<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>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>
<!-- Include to enable embedded db if user selects single mode -->
<dependency>
    <groupId>com.orientechnologies</groupId>
    <artifactId>orientdb-server</artifactId>
    <version>${orientdb-version}</version>
</dependency>
<!-- Include to enable remote db if user selects distributed mode -->
<dependency>
    <groupId>com.orientechnologies</groupId>
    <artifactId>orientdb-client</artifactId>
    <version>${orientdb-version}</version>
</dependency>
...
<orientdb-version>2.1.3</orientdb-version>

When I run it from the IDE everything works great. However when I package up the project using maven-shade-plugin I start getting these Cannot find a command executor for the command request: errors but only for a subset of queries.

@maggiolo00 Yes it did thanks. I specifically had to add:

<transformer
                                    implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                    <resource>META-INF/services/com.orientechnologies.orient.core.sql.functions.OSQLFunctionFactory</resource>
                                </transformer>
                                <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                    <resource>META-INF/services/com.orientechnologies.orient.core.sql.OCommandExecutorSQLFactory</resource>
                                </transformer>

You can go ahead and close this issue. Thanks for your help.

Cool @tarkal :D

Was this page helpful?
0 / 5 - 0 ratings