OrientDB ETL - IllegalAccessError异常

时间:2016-08-05 14:24:26

标签: orientdb etl

我无法让ETL导入器正常工作。

我使用的配置文件是以下

{
  "config": {
    "log": "debug"
  },
  "begin": [],
  "source": {
    "file": {
      "path": "/mnt/shares/Sites/store.csv"      
    }
  },
  "extractor": {
    "csv" : {
      "ignoreEmptyLines": true
    }
  },
  "transformers": [
    {
      "vertex": { 
        "class": "Store" ,
        "skipDuplicates": true
      }
    }
  ],
  "loader": {
    "orientdb": {
      "dbURL": "plocal:/usr/local/src/orientdb-community-2.2.6/databases/my_database_name",
      "dbUser": "myuser",
      "dbPassword": "mypass",
      "dbAutoCreate": false,
      "tx": false,
      "batchCommit": 1000,
      "wal" : false
    }
  },
  "end": []
}

我得到的错误是:

  

线程中的异常" main" java.lang.IllegalAccessError:尝试访问方法com.orientechnologies.common.exception.OException。(Ljava / lang / String; Ljava / lang / Throwable;)来自com.orientechnologies.orient.etl.OETLProcessor类的V       在com.orientechnologies.orient.etl.OETLProcessor.parseConfigAndParameters(OETLProcessor.java:136)       在com.orientechnologies.orient.etl.OETLProcessor.main(OETLProcessor.java:113)

如果我将配置文件与" config"放在一起,我甚至会遇到同样的错误单独进入...

有人对这个话题有一些想法吗?

更新: 错误似乎在OETLProcessor.java中的以下行引发:

        final OTransformer tr = factory.getTransformer(name);

2 个答案:

答案 0 :(得分:0)

我尝试导入此csv

storeid,name
1,store1
2,store2
3,store3

用这个json

    {
      "config": {
        "log": "debug"
      },
      "begin": [],
      "source": {
        "file": {
          "path": "myPath/Store.csv"      
        }
      },
      "extractor": {
        "csv" : {
            "separator": ",",
            "ignoreEmptyLines": true
        }
      },
      "transformers": [
        {
          "vertex": { 
            "class": "Store" ,
            "skipDuplicates": true
          }
        }
      ],
      "loader": {
        "orientdb": {
          "dbURL": "plocal:myPath/Store",
          "dbUser": "admin",
          "dbPassword": "admin",
          "dbAutoCreate": false,
          "tx": false,
          "batchCommit": 1000,
          "wal" : false
        }
      },
      "end": []
    }

它对我有用。

enter code here

希望它有所帮助。

答案 1 :(得分:0)

重试后我发现了问题: 由于某种原因,我有2个不同的.jar版本,显然使用的是错误的版本。 我有 - ORIENTDB_HOME / LIB / orientdb-etl-2.1.3.jar - ORIENTDB_HOME / LIB / orientdb-etl-2.2.6.jar

我刚刚在orientdb-etl-2.1.3.jarUNUSED中重命名了2.1.3

事情开始奏效了。

下一个问题是我无法使用root帐户进行访问(github问题上有明确描述的动机,但我无法再找到它...),所以我创建了一个新的管理员帐户并使用它。

所以最终它起作用了。